perm filename HOW.ALS[UP,DOC]3 blob
sn#555999 filedate 1981-01-14 generic text, type C, neo UTF8
COMMENT ⊗ VALID 00103 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00009 00002 HOW A condensed reference file of useful system programs.
C00014 00003 Supplementary Information
C00016 00004 HELP An on-line program called by typing HELP.
C00023 00005 PRUNE PRUNE.DAT One line descriptions of files
C00027 00006 Equipment
C00030 00007 Basic system commands
C00039 00008 Teletype Commands
C00040 00009 DMINT and DMUSE Info for beginners on DataMedia
C00043 00010 Useful system features
C00044 00011 FINGER Locates people or tells when they last ran. Jan.'78
C00051 00012 RSL Service Level Reservations
C00052 00013 COOL Summarizes temperature & computer uptime. Jan. 1978
C00056 00014 SOB Son of Bureaucracy (computer time accounting) Jan. 1978
C00060 00015 BUREAU Computer time accounting (old style) Oct. 1975
C00067 00016 LESCAL Calendar-maker. Dec. 1974
C00068 00017 FREEFO Text macro processor March 1973
C00069 00018 KWIC Keyword in context program Dec. 1973
C00076 00019 XGPTYP Converts XGP file to text form Dec. 1975
C00077 00020 Editors
C00078 00021 Text Editors
C00080 00022 E The page and display oriented basic editor.
C00084 00023 SOS Line numbering basic editor for teletype usage.
C00086 00024 Graphic Editors
C00090 00025 GEOMED A graphics editor.
C00093 00026 Font Editors
C00100 00027 Document Compilers
C00101 00028 POX Formatting document compiler for use with the XGP.
C00105 00029 PUB Publication compiler to achieve book format.
C00107 00030 PUBMAC Macros for generation of tables of contents etc.
C00109 00031 TEX A system for Technical Editing by Donald E. Knuth
C00112 00032 MAXTEX TEX preloaded version and macros.
C00116 00033 Built-in Editors
C00117 00034 ILISP
C00118 00035 AID
C00119 00036 BASIC
C00120 00037 Programming Languages
C00126 00038 Machine Languages
C00127 00039 FAIL A fast one-pass assembly language
C00131 00040 MACRO An older 2-pass assemblier with good macro facilities
C00132 00041 MIDAS MIT's assembler for the PDP-10
C00134 00042 PALX PDP-11 assembler
C00135 00043 MIX
C00136 00044 Algebraic Languages
C00137 00045 SAIL The standard AI lab. ALGOL based languague
C00138 00046 PASCAL An ALGOL-60 based languague developed by N. Wirth.
C00141 00047 BASIC
C00142 00048 AID
C00144 00049 WISE
C00145 00050 FORTRAN 40
C00146 00051 LISP languages List Processing Languages
C00148 00052 MACLISP Standard AI Lab Lisp programming language.
C00155 00053 LISP 1.6 Stanford AI Lab Lisp 1.6 System
C00156 00054 MLISP Meta-notation LISP programming language
C00158 00055 MLISP2 LISP derivative programming language.
C00160 00056 ILISP UC Irvine Lisp
C00161 00057 RLISP REDUCE Lisp
C00168 00058 Programming aids
C00169 00059 @ ATSIGN prepares a (compiler-like) cross-reference listing
C00171 00060 ARPAnet programs
C00173 00061 HOST and HOSTAB Examine the ARPAnet host table
C00176 00062 TELNET Communicate with an ARPAnet host
C00178 00063 SUPDUP Communicate with an ARPAnet host via SUPDUP display protocol
C00180 00064 IMSSS Communicate with IMSSS
C00183 00065 FTP File Transfer Program to transfer files over ARPAnet
C00185 00066 HOSTAT Report status of hosts on the ARPAnet
C00186 00067 IMPSTA Report status of ARPAnet connections at SAIL
C00188 00068 TALK Link to users at other hosts on the ARPAnet
C00190 00069 WHO Report who is logged in on another host on ARPAnet
C00191 00070 TIMES Report on times from the network time servers
C00192 00071 DFTP and DCSTAT Hack the CCA Datacomputer
C00194 00072 DDHACK To control DD displays from remote ARPA hosts
C00197 00073 Debugging Aids
C00199 00074 RAID An interactive debugging aid (also FRAID).
C00205 00075 Conversion Programs
C00209 00076 File duplicating programs
C00212 00077 COPY
C00223 00078 SPOOL, XSPOOL, QSPOOL and UNSPOOL, [LIST] and [XSPL]
C00233 00079 TENDMP
C00234 00080 6TO10
C00235 00081 Communication Programs
C00238 00082 MAIL
C00239 00083 FTP EFTP
C00240 00084 Demonstration programs
C00246 00085 Chess
C00247 00086 Checkers
C00248 00087 Go
C00249 00088 KALAH Modern version of WARI, an ancient African game
C00254 00089 Recreation Programs
C00255 00090 ADVENTURE
C00256 00091 (EYEWASH)
C00257 00092 PARRY A model paranoid Sept. 1977
C00258 00093 CRYPTO A bookkeeping program for use in solving puzzles.
C00259 00094 USEFUL SUBROUTINES
C00260 00095 OUTDPY SAIL callable subroutine to display text
C00264 00096 UNSORTED
C00265 00097 BUZZ Terminal test 1967
C00266 00098 DOCTOR Eliza 1968
C00267 00099 P2P Paper tape puncher 1973?
C00268 00100 A2E ASCII to EBCDIC code conversion Jan. 1973
C00269 00101 SHUFFL Operating System test program
C00270 00102 CHACK & AMOEBA III display hacks 1969
C00271 00103 BILLBD Billboard printer Nov. 1966
C00272 ENDMK
C⊗;
HOW A condensed reference file of useful system programs.
Currently maintained by ALS
Supplementary information available:
HELP <topic><cr> Monitor command to find help on given topic.
READ <topic><cr> Monitor command to read a documentation file
file on given topic, using the display editor E.
PRUNE.DAT[3,2] File containing one-line descriptions of some help
topics.
MONCOM.BH[S,DOC] Online version of the latest edition of the
Monitor Command Manual (SAILON-54.6, August 1978),
describes all monitor commands and the programs
they run. The printed manual is available from
publication services.
MONCOM.UPD[S,DOC] Updates to the Monitor Command Manual.
UUO.ME[S,DOC] Online version of the latest edition of the UUO
Manual (3rd edition, SAILON-55.5, November 1977).
UUO.UPD[S,DOC] Updates to the UUO Manual, includes all new UUOs.
To use: Type READ HOW<cr> then αFtopicαP (in E) ("α" means CONTROL) where
"topic" is the name of the program or topic you wish to enquire
about. You can look at the HOW directory on page 1 for a list of
the possible programs and topics.
To exit: You will be in E so you may switch to another file, or exit with αE.
This file describes some of the many useful programs that are available on
the system and gives a few basic commands for using these programs.
The entries each occupy a separate page of fewer than 100 lines. The
first line of each page is arranged so that the directory of HOW,
maintained automatically by E, forms a useful index and so that a ⊗FNAME⊗P
command may be used to locate any desired entry.
The entries should conform to the following format:
1) A first line, indented by a single TAB, to contain the program name, a
second TAB and a very short description (total line length not to exceed
68 characters). DO NOT mention names of other programs on this line! If
there is room, put the last revision date on this line, otherwise put this
information with the name of the maintainer, below.
2) The name of the author or the person currently maintaining the program.
3) References to supplementary information, on-line files, manual etc..
4) Calling and exiting commands
5) The explanatory text itself.
If you wrote, maintain, or even know about some program or facility that
should be described in this file, please prepare a one page draft and mail
it to ALS. It might be wise to advise ALS of your intentions to avoid
duplication of effort.
The author of each page has primary responsibility for maintaining the
information. Please report all errors or omissions to him and/or to ALS.
If you find an error or omission and it is not corrected in a reasonable
period of time, please add a signed addendum to the original page.
Please do not make other corrections without informing ALS.
Supplementary Information
The New HOW File.
We are starting to put togather a new document aid that will reside on
UP,DOC, accessable by typing READ HOW. The aim is to have one page in
this document on every generally useful and generally available file on
the AI computer. The start of this file is being kept on 1,ALS until its
format has been finalized and until there are enought completed pages to
make it of use to others.
Contributers are asked to read page 2 of HOW[1,ALS] to get the flavor of
what we are attempting to do and for our first stab as to desired format.
Also look at the directory on page 1 and at some of the other pages to get
a feel for what is desired.
HELP An on-line program called by typing HELP.
The Help program provides minimal on-line documentation for system
programs and facilities.
To use type HELP name<carriage return> where name is the name of the
program or facility that you are inquiring about.
Type HELP with no file name for further information.
HELP.BH[UP,DOC] contains the following:
The HELP program is intended to provide short, minimal documentation
for system programs and facilities. For the most part, such help
is provided in the form of short text files which are typed by the
HELP program,, but the program is also capable of running other
programs and of executing monitor commands a la DO.
The command "HELP name" looks for a file on the [3,2] area with
filename NAME and an extension matching one of those listed below.
The first (should be only!) such file found in the UFD is processed
in accordance with its extension:
<null> type as text
TXT type as text
DMP run via SWAP UUO
CMD type into input buffer to be executed as commands
DPY like CMD, but user must be at a DD or III
LNK read ASCII name from file and use as new HELP argument
In reading ASCII files (all but DMP), TV/E directories and SOS line
numbers are ignored. The user must be logged in to use a CMD or DPY
HELPer. Also, since those typically have side effects like writing
files, each contains a warning message which is typed out before
the commands are executed; the user must confirm by typing Y that he
really wants the HELPer executed. The format of a CMD or DPY helper
is <warning>⊗<commands>, e.g.:
This HELPer produces a such-and-such listing on the XGP.
Please type Y to confirm: ⊗XSPOOL SUCH-AND-SUCH
If the first character of the HELPer is ⊗, it is executed without
waiting for confirmation.
Note that DMP files can be executed not-logged-in; writers of DMP
files on [3,2] should bear that in mind when writing their programs.
In scanning a LNK file, letters and digits are accumulated up to a
non-alphameric or the sixth character. The resulting name is then
treated as if it had been typed by the user. Thus two HELP arguments
can refer to the same text file and there is only one copy to update
if the program being documented changes.
HELP files should mention filenames of other documentation when
available. Remember that the user may not know the syntax of the
TYPE command, so instead of
For more information: TYPE MUMBLE.FOO[UP,DOC].
you should use an unambiguous notation like
For more information, type "TYPE MUMBLE.FOO[UP,DOC]".
(Remember also that the user may be at an uppercase-only, standard ASCII
terminal!) If you write a DMP file with effects other than typing something
on the user's terminal, it is a good idea for your program to ask for
confirmation first.
A PRUNE.DAT file exists for [3,2]; also, PRUNE has been modified so that
for [3,2] only it sorts the file by filename first rather than extension
first. Writers of HELPers should add descriptions to the PRUNE.DAT file.
(The command "HELP HELPER" types the filename and use fields only of the
PRUNE.DAT file.)
If there is no HELP file on the topic specified by the user, the HELP
program looks for files with that name and any extension on [UP,DOC],
[S,DOC], and [AIM,DOC] in that order. The full name of the first such
file found, if any, is typed, with a suggestion that the user might
want to read that file. The file itself is not typed out, on the
theory that users of HELP are looking for short help rather than full
documentation. Thus, if you can think of nothing to say about your
program other than the location of the full documentation, you need
not bother. For utility programs, though, you can usually think of
some short and sweet paragraph which will get the user through the
most common uses of your program.
[xxx,DOC] files with extension UPD are not listed as described in the
previous paragraph, except that if both NAME.EXT and NAME.UPD are found
on the same PPN, both are mentioned.
If the HELP command is given at a display terminal, and there is no
HELP file for the given topic but there is a [xxx,DOC] file, then
the command R E;<file>/R is loaded into the line editor buffer.
PRUNE PRUNE.DAT One line descriptions of files
To use: type R PRUNE
To reference PRUNE.DAT files: type READ PRUNE.DAT[<desired ppn>]
PRUNE is a program available on the system which help a user keep track of
his files. PRUNE can be used to makes a file, PRUNE.DAT, which has an
entry for each file. The entries contain the file name, extension, a
programmer field and a description field. Prune has commands for making
these entries, finding specified entries and for pruning your disk area of
unwanted files.
PRUNE.DAT files exist for some of the system file areas and contain one
line descriptions of the files located in these areas. In particular, see
those on [UP,DOC], [S,DOC], [1,3] and [3,2]. Use READ PRUNE.DAT[<ppn>]
and not R PRUNE to read these, unless you are responsible for some of the
entries and want to change them.
PRUNE.DAT[3,2] has one-line descriptions for the following monitor commands:
The current state of this list can be seen by typing RUN MONCOM[3,2].
Monitor Commands: SU-AI WAITS 9.10/Y Assembled 08/28/80
@ COPY DSKSIZ FLUSH LOGOUT PUMPKI SETTIM UNDELE
A CORE DT FORK MAIL QSPOOL SETUW UNPROT
ACCESS CREATE DTN FTP MAKE R SETUWP UNPUMP
ADVANC CREF DUMP G NODE RCV SLEVEL UNREAP
ALIAS CSTART E GET NOE READ SPOOL UNSPOO
ASSIGN CTYSET ECC GRIPE NOEDIT REAP SSAVE VE
ATTACH D ED HALT NOEIT REASSI START VERIFY
BACKSP DAYTIM EDDT HELLO NS REENTE SUPDUP W
BATCH DDT EDIT HELP OFIND REMIND SYSTAT WHE
BEEP DE EFIND HOST OTN RENAME TALK WHEN
BOOK DEASSI ELFQFI HOT P2LOAD RER TECO WHERE
C DEBUG ENABLE K PDETAC RERUN TELNET WHO
CANCEL DECIDE EOT KATTAC PJOB RESET TEST XGPLIS
CCONTI DELETE EREAD KILL PLAN RESOUR TIME XPART
CD DETACH ETV KJOB PLIST RESTOR TLIST XSPOOL
CDETAC DFIND EVENT KLOG POX RETRY TN ZERO
CETV DI EXECUT L PPPN REWIND TRANSF
CFORK DIAL FI LATER PREPAR RSL TRY
CKMAIL DIRECT FILES LISP PRO RUN TTY
CLRUW DISABL FIND LOAD PROCES S TURKEY
CLRUWP DO FINGER LOCATE PROVE SAVE TYPE
COMPIL DQAVG FINISH LOG PTTY SD UDPUFD
CONTIN DRD FIXIML LOGIN PUB SEND UFD
Equipment
The following equipment is currently in use.
1 Digital Equipment Corporation KL10 and KA10
(36 bit words).
262k words of 1 microsecond DEC core (MG10),
131k words of 1 microsecond Ampex core.
1 Ampex disc file (3330-11 type), 6 spindles
(capacity: 7.8 x 10↑9 bits).
4 Dectape drives, 2 mag tape drives (7 track),
line printer, Calcomp plotter, Xerox Graphics Printer.
58 Data Disc displays, 6 III displays, 3 IMLAC displays,
10 Datamedia displays, 15 Teletype terminals, 5 TI terminals.
DEC PDP-11/45 and SPS-41 with 8k words (16 bit) of core
and 197k words of Intel MOS memory.
Communications processor: BBN TIP (Honeywell DDP-316) connected to the ARPA
Network.
Special equipment: Audio input and output systems, hand-eye equipment
(4 TV cameras, 2 arms), remote-controlled cart.
.end
Basic system commands
Reference: Monitor Command Manual, SAILON-54.6, November 1977
on line as MONCOM.BH[S,DOC] latest corrections in MOMCOM.UPD[S,DOC].
All commands to the system monitor end with <carriage return>.
Computer accounts are designated by PROJECT and USER initials (one to three
letters each). E.g. "1,BAR" refers to project 1 of user BAR. File names
are of the form SAMPLE.SAI[1,BAR], where the name SAMPLE may be up to six
letters long, the extension SAI may be up to three letters and is usually
used to designate the class of file (e.g. "SAI" means that this is a
program written in the SAIL programming language). If the account
designation is omitted ([1,BAR] in the example), your own account is presumed.
COMMAND EFFECT
L BAR Logs you in, as project 1 (by default), user BAR. If there is
a password on this account (as there must be for remote login),
you will be asked for it, but your answer will not be printed.
L 2/BAR Logs you in as project 2, user BAR.
To change a password, log in with "%" in place of "/".
K Kills your job (logs you off).
RCV Starts reading messages in your "mail box". For a list of
alternative commands, say "?" when it asks for a command.
ET∂ Enters your mail file with E, allowing you to read it, or to
write into it or rearrange it as you will.
MAIL LES Initiates a message to user LES. It first requests a subject,
then the text of the message. The message is terminated with
a <meta><control>LF if you are on a display terminal or a
<control>Z character (i.e. hold down the CONTROL key and
type "Z") if you are on a non-display terminal.
⊗XMAIL LES An alternate method of sending mail while in E. For details
see the ⊗? file while in E or type ET? to the system monitor
to enter this file directly.
DIR Lists the names of all files in your account directory.
DIR *.SAI[*,REG] Lists the names of all files that have an SAI extension
in any account belonging to user REG ("*" means "any").
TYPE SAMPLE.SAI Types out the file SAMPLE.SAI stored under your account.
CET LIST Creates an empty text file called LIST and lets you insert
text using the E editor.
If you are a complete beginner, learn how to use E by typing
HELP ETEACH and following directions. You can hardly be a
complete beginner if you are reading this, but never mind.
ET LIST Enters the (previously created) file LIST with E.
CREATE LIST Creates an empty text file called LIST and lets you insert
text using the SOS editor. See the SOS Manual for editing
commands.
ED LIST.OLD Starts SOS editing an existing file called LIST.OLD.
COPY PEOPLE←JERKS.OLD Makes a copy of the file JERKS.OLD in a new file
called PEOPLE.
RENAME PEOPLE←JERKS.OLD Changes the name of JERKS.OLD to PEOPLE.
DELETE PEOPLE,*.OLD Deletes the file PEOPLE and all files with extension OLD.
PPSAVE Makes a file copy of the current state of the system
displayed screen. Useful in case one wants to save some
typed out information.
--------------
To stop any program that is running, type CALL if on a display terminal or type
<control>C twice (i.e. push down the key marked "Control" and hit "C" twice) if
you are on a non-display terminal. To make a program stop typing out without
halting, type <control>BREAK if on a display terminal or <control>O if on a
non-display terminal. <control>CLEAR restores typing.
For more complete information on commands, see the Monitor Command Manual
(SAILON-54.6) August 1978.
PRUNE.DAT[3,2] listings
ALIAS Command to change default directory used for disk files
ASSIGN Command to acquire use of non-sharable device
ATTACH Command to attach terminal to a detached job
DIR Command to list file directories
DSKSIZ JBR Program to tell user his disk allocation and usage.
KJOB LNK Command to log out of system (same as HELP LOGOUT)
LOGIN Command to log into system
LOGOUT Program to log out of system (same as HELP KJOB)
TALK Command to communicate with other users
DIRED DMP 1 3 14.7 14-FEB-78 1902 000 105SGK DIRED 23-FEB-78 21-FEB-78 P1070
.sect Miscellaneous Useful Programs
CALLIT DMP 1 3 431 03-MAR-74 1334 000 1 BH CALLIT 02-FEB-76 05-JUL-75 P527>
DO DMP 1 3 6.5 22-NOV-76 0122 000 1 ME DO 09-DEC-76 04-DEC-76 P805
LOGRUN DMP 1 3 284 07-APR-74 1714 000 1 BH LOGRUN 09-DEC-76 05-JUL-75 P527>
PERUSE DMP 1 3 1.9 24-MAR-75 1327 000 NETTVR PERUSE 08-DEC-76 05-JUL-75 P527>
PPSAV DMP 1 3 560 08-SEP-76 1554 000 1 ME PPSAV 09-DEC-76 19-SEP-76 P764>
PTYJOB DMP 1 3 2.1 14-JUN-76 0152 000 1JBR PTYJOB 09-DEC-76 27-JUN-76 P712>
batch
.sect Controling the World
.ssect1 System Control
RSL DMP 1 3 9.5 07-JUL-76 1937 000 ACTREG RSL 09-DEC-76 18-JUL-76 P725>
.ssect1 Device Control
ADS DMP 1 3 728 06-DEC-73 2119 000 1 BH ADS 01-DEC-76 10-MAY-76 P692>
MAP DMP 1 3 679 22-SEP-75 2307 000 1 BH MAP 09-DEC-76 10-MAY-76 P692>
Teletype Commands
DMINT and DMUSE Info for beginners on DataMedia
Page 2 of DMINT is reproduced herewith.
This is the file DMINT[INF,CSD] at the Stanford AI Lab (SU-AI). This
is a file intended to help you to learn the AI system. We assume that you
are using a DataMedia terminal. This file contains introductory
information about the terminal itself, how to connect to the system, how
to disconnect, and some other basic information about the AI system and
its documentation. The file is intended to be read in hard-copy mode by a
novice. It can be read on-line by anyone who knows very basic editting
commands. A companion file called DMUSE[INF,CSD] is intended to teach the
use of the E editor. That file is intended to be read on-line.
Instructions which are sufficient to allow use of DMUSE are contained
herein.
It is hoped that these documents will be useful for the raw novice,
one who has never dealt with a time-shared computer before. Consequently,
they will sometimes be painfully slow for the user who only wants that
portion of the information which is peculiar to the AI system. On the
other hand, the document has been prepared by folks who are far from raw
novices, so we often make unwarranted assumptions about the meanings of
some terms and instructions. Suggestions for improvement of either DMINT
or DMUSE should be sent to Denny Brown.
Useful system features
FINGER Locates people or tells when they last ran. Jan.'78
Programmer: LES
Source file: FINGER.SAI[F,ACT]
NETWORK FINGER
A FINGER command containing %<site name> will now attempt to finger people
at other Arpanet sites. It does this by connecting to the FINGER socket
at the specified site and passing the rest of whatever you typed (before
and after the "%<site name>" to the host. If that host supports Network
Finger, then you get whatever they return.
For example, "FING TK%AI" tells you about Tom Knight at MIT-AI and
"FING %SRI" tells you about everyone who is running on SRI-KL. At this
writing, only the following sites respond to a network FINGER:
all MIT ITS sites (ai, mc, ml, dm), sri-kl, sri-ka, and office-1.
More will be joining shortly.
Normally only one site can be specified in a single FINGER command, but if
you would like to waste some time, say "FING %*" and it will tell you
about everyone out there.
DOMESTIC FINGER
The system command "FING" shows data on all jobs, in order by programmer
initials. The "IDLE" column shows the time, in minutes, since the given
job was last in the RUN queue. If the job is currently in the STOP or
NULL queues, a "." follows.
If there is a digit in the next column, it represents the number of extra
Data Disc channels that belong to this job.
Finally, the "Terminal" part shows the location of the owner (the terminal
that last typed something at this job). "detached", of course means just
that. "disowned" means that the terminal that last owned this line has
released it. "TV" means that this is a television (Data Disc) terminal
that is displaying the channel currently. "tv" means that the terminal
that owns this job isn't looking at it.
If terminals other than the owner are viewing this job's main channel,
then they are listed on subsequent lines, with the job field blank. If
you want to know the TTY# rather than the physical terminal, use WHERE or
WHO rather than FINGER.
POINTING THE FINGER
The command "FING <people list>" shows data only on the specified people.
For example, "FING JMC,DAVE,WILL" requests information on programmer JMC
and anyone whose first or last name begins with "DAVE" or "WILL".
String matching uses the following precedence:
1) exact match on programmer initials,
2) exact match on friendly or last names,
3) match on leading characters of friendly or last names.
If a given string matches more than one person at a given level, it
reports "ambiguous" and lists their names.
If only one person is specified and he is not logged in, it normally tells
when he last logged out and shows his plan file, if any, but this can be
suppressed with switches (see below).
FILE LISTS
Arguments in the FINGER command are separated by commas and/or spaces.
An argument of the form "@<file name>" causes that file to be read.
Files can include references to other files, ad nauseum. In files,
everything to the right of a semicolon on a given line is ignored,
so that comments can be put there.
The default file extension is "DIS" and the default PPN is "[P,DOC]".
Thus if you say "FING @H", it will first look for a file in you area
called "H". If that doesn't exist, it will next try "H.DIS" in your
area and, if necessary, "H.DIS[P,DOC]", the latter being the list of
hand-eye people which is kept in [P,DOC] along with other group lists
(see SAIL Telephone Directory).
SWITCHES
Normally, if only one person is specified in the FINGER command and he is
not logged in, the time of his last logout and plan file, if any, are
given. This printout can be suppressed by using the "-LOGOUT" or "-PLAN"
You can force printing of last logout or plan files even for lists of
people by using the "/LOGOUT" or "/PLAN" switches, which can also be
abbreviated to one letter. Thus "FING @VB/L" lists everyone on the
volleyball list who is logged in and, for the rest, the time of their
last logout.
DOCUMENTATION
The command "FINGER ?" will cause this description to be printed out.
RSL Service Level Reservations
Programmer: Jim Stein; modified by REG & LES
Documentation: Monitor Manual appendix (SAILON 54)
Used to reserve service level and certain devices, as described in a Monitor
Manual appendix.
COOL Summarizes temperature & computer uptime. Jan. 1978
Programmer: LES
Source files: COOL.SAI[T,ACT]
COOL retrieves and summarizes temperature and computer uptime history.
Source files are maintained by the THERMO phantom and exist from
1 January 1978 to date.
COOL asks for the date range, which can take many forms, e.g.
23 (the last occurrence of that date, this month or last)
Feb (entire month of February or, if in February, month to date),
78 (all of 1978),
2:5 Jan (2nd through 5th of January inclusive),
0 or <null> (today),
-1 (yesterday, -2 for day before, etc.).
Any combination of <date>:<date> can be used, with at least 3 letters of
the month given. COOL will try to do something sensible even if you leave
some elements unspecified, such as the year.
You can use one-line commands, e.g. "R COOL;-6:0" retrieves data for
the last seven days.
OUTPUT
COOL normally lists the system downtime and availability (%). Next, the
number of system reloads is given, if any, as well as the mean time
between reloads, the total number of service breaks, and mean time between
service breaks. A "break" is defined as either a reload or a pause.
Only pauses longer than 2 minutes can be detected and some up to 12
minutes may escape detection.
Next, it lists the high and low temperatures and the times at which they
occurred, and the mean temperature. Temperatures are given both in
Celsius and Fahrenheit and are normally outside air temperatures, but can
be switched to the computer room temperature (see below).
SWITCHES
Switches may be added to the end of the command line, preceded by "/".
Switches may be abbreviated to as little as one letter.
/INSIDE gives computer room temperatures rather than outside,
/BREAKS gives detailed listings on all service breaks (reloads or pauses),
/-BREAKS suppresses all information on breaks, including the summary,
/SPOOL both displays and Spools the requested information,
/XSPOOL both displays and Xspools,
/FILE puts a copy in a file, after asking you for the file name.
/TIME=<interval> lists temperatures at the specified interval, which
defaults to 10 minutes (the minimum). For example, "/T=2:00"
lists temperatures at 2 hour intervals. Intervals greater than
24 hours cause only the temperature at midnight to be listed.
If you use more than one of the SPOOL, XSPOOL, or FILE switches, it will
use the last one given.
SOB Son of Bureaucracy (computer time accounting) Jan. 1978
Programmer: LES
Source File: SOB.SAI[F,ACT]
To get a summary of computer usage by project, just type <carriage
return>. This lists projects in order of decreasing "doubloons" (a
linear function of computer cost components on a somewhat arbitrary
scale).
In calculating this cost, "B time" charges (weekday mornings and
evenings, weekend afternoons) are reduced by a factor of 2 and "C time"
is reduced a factor of 3. The doubloon cost is also shown as a percentage
of overall computer utilization (excluding system services such as
spooling, accounting, and news service).
Next, the number of logins is given and the percentage of A time, B time,
and C time, based on the doubloon calculation with no discounting.
The last three items are the average core size, CPU utilization (CPU time/
job time), and load average while computing.
There are three possible commands: GROUP, PN, and MOST. All commands and
switches may be abbreviated so long as they are unambiguous (one letter
will do). Cases are ignored. The default command, described above, is
equivalent to GROUP without an argument. If an argument is given, then it
is matched against the leading characters of the various group names to
select one (e.g. the command "g hand" will retrieve data on the Hand-eye
project).
The PN command with a programmer ID as an argument will get data on that
individual alone. Without an agument, it exhaustively lists the accounting
data in order by PN, omitting null entries.
The MOST command without an argument lists the 20 heaviest users. An
integer argument causes that many of the heaviest users to be listed.
SWITCHES
The /DETAIL switch has effect only on the GROUP command and causes data
for individuals in each group to be listed in order of decreasing cost.
The /FILE switch will subsequently ask for a name and direct output there.
/SPOOL and /XSPOOL do what you would expect.
The /RAW switch is mostly for debugging and causes raw accounting data to
be printed together with a (rough) explanatory heading.
BUREAU Computer time accounting (old style) Oct. 1975
Programmer: LES
Source File: BUREAU.SAI[F,ACT]
To find out how much computer time has been used by any given group
in the period 1971-77, say
.R BUREAUCRACY (actually, just "R BUREAU" will do).
The program will ask for dates, PPN lists, and output form. If you
give null responses (CR) to all requests, the program will
automatically show a summary of computer utilization by project from
the beginning of the current year through yesterday.
Data covered include number of PPNs, number of logins, job hours, CPU
minutes, core K minutes, and "Doubloons" (an approximate measure of
overall cost on an arbitrary scale). The entries are in order of
decreasing doubloons, except that "All others" is always last.
DATES
Alternatively, you can "roll your own". The raw data is stored by
PPN for each month over the past year and for each year back to 1971.
When it asks for dates, you can say something like "Jul:Oct", which
may or may not work. If the current date is December, this gives
you data for the current year. If the current date is May, last
year's data is used. If you say that in July, August, or September,
it will simply complain. It doesn't hurt to ask.
If you say just "May" then you get data for the last instance of that
month only. If you say ":May" you get data from 1 January through
May. If you say 72 or 1972, you get data for that entire year. If
You mention the current year, or if you just hit <carriage return>,
you get year-to-date data.
PPNs
When the program asks for PPNs, you can say something like:
Bureaucrats:JMC,LES,TW; Bad guys:REG,[SPL,SYS]; Classes: [206],[225]
which will gather data on three groups, separated by ";". Labels (one
or more words ending in ":") may appear anywhere in the group list.
If you omit labels, the groups will be named "Group 1", "Group 2",
etc.
More generally, the following elements may appear in PPN lists:
group label:pn,[pj],[pj,pn],[*,pn],[pj,*],@file,@@,/SUMMARY
Nothing need be capitalized. [pj] is of course equivalent to [pj,*]
and pn means [*,pn]. If a given PPN qualifies for membership in more
than one group, then [pj,pn] takes precedence over [pj,*], which in
turn outranks [*,pn]. If you mention exactly the same thing in more
than one group the program will grumble, but will ignore conflicts
and continue.
Now about the "@file" gizmo: This lets you compose a horrendous list
as a text file and gobble it into the middle of the line. The file
name may contain a PPN. Any TV/E directory or SOS line numbers will
be ignored. While the on-line response is restricted to one line,
the text file may contain many lines. It will be read as if the
carriage returns don't exist. You can go indirect any number of times
and any number of levels, though string space may freak out
eventually.
The "@@" form says "go read the telephone list". This will assign
everyone to groups on the basis of project affiliations given in our
telephone directory. Individuals who are in more than one project
are arbitrarily pushed into the first one on their list. People
without a listed project are dumped into "Miscellaneous". Of course,
this still leaves a few "outlaws" who are not on any of our
authorized user lists. You can precede the "@@" with one or more
group lists of your own, which will take precedence over the
directory groupings.
OUTPUT
After the data is generated, the program repeatedly asks for an
output specification of one of the following kinds:
<blank> type a summary
* type detailed listing
S spool a summary
S* spool details
<file> save summary in file
<file>* save details in file.
. loop back to respecify PPNs and dates.
On reruns, the null reply to PPN and Date questions means "just like
last time". Thus, you can easily ask for data from a different time
period with the same cast of characters, or for the same time with
another group.
LESCAL Calendar-maker. Dec. 1974
A program for printing or typing calendars in any of 63 formats. To run, say
"R LESCAL" and answer the questions.
Documentation: self-documented, with a sprinkling of political commentary.
Programmer: LES
Source file: LESCAL.MAC[CSP,SYS] (written in MACRO-10 before FAIL was invented).
FREEFO Text macro processor March 1973
Programmer: LES
Source file: FREEFO.LES[UP,DOC]
Documentation: FREEFO.LES[UP,DOC]
Freeforol is a text macro processor that can be used to generate form
letters and other fill-in-the-blanks text. If you say R FREEFO, it
types a "*" and expects a keyboard input of the form
<source file list>
or
<destination file>←<source file list>
where the <source file list> consists of one or more file names
separated by commas. These must be text files and will be
effectively concatenated in the order given.
KWIC Keyword in context program Dec. 1973
Programmer: LES
Source file: KWIC.SAI[S,LES]
This program can be used to produce a concordance, index, word count, or
word list for any given text file. To run, say "R KWIC". The simplest
command that it understands is:
*<source file name>
This causes the source file to be scanned for words, which are
compared with an internal dictionary of common words. Any that are
not in the dictionary are considered to be "keywords". The program
produces an output file, in this case called <source>.KWC, that
contains an alphabetized list of keywords, one per line, together
with the local context and a reference to the page and line on which
they occur. It also lists the number of occurrences of each
dictionary word. A typical output might begin as follows.
Concordance of SIGNUP[W,LES]
275 keywords, 961 dictionary words
47 a
5 about
Page Line ------
5 22 A roll of adhesive tape or electrical tape.
6 after
Page Line ------
1 30 August 16 at noon in the AI Conference Room.
2 air(s)(ed)(ing)
3 all
Page Line ------
3 15 If you come to an ambiguous fork in the trail, preferably
1 among
......
Numbers appearing just to the left of center are word counts for
dictionary words (with various suffixes), while the page and line
numbers point to the locations of keywords in the original document.
Line numbers are counted from the top of the page. SOS line numbers
(if any) are ignored, as are TV/E directory pages, though the page
numbering includes the directory. Words beginning with different
letters of the alphabet are placed on different output pages.
General Command Format
The more general command format is:
*[<output file>←]<source file>[/ONLY | /ALL][/INDEX | /COUNT | /LIST]
where bracketed elements are optional and alternative switches are
separated by "|". Both source and output files must be on the disk.
All switches may be abbreviated to one letter. The /ONLY switch
causes only keywords to be listed in the output file (i.e. omitting
counts of dictionary words). The /ALL switch causes the dictionary
to be ignored, so ALL words are treated as keywords. (Beware: a
concordance produced with the ALL switch on is typically about 10
times the size of the original document.
The /INDEX switch causes the context to be omitted and produces a
three-column listing of words and their original locations (page and
line) or number of occurrences (dictionary words). The /COUNT switch
causes word counts only to be generated for keywords and produces a
four-column listing of these counts. The /LIST switch produces a
raw, seething word list (i.e. an alphabetized list of all words
used), one per line, with no header information, and all on one long
page.
Scanning Procedure
KWIC treats as a word any alphanumeric string beginning with a letter
and possibly containing "'", "-", or "/", but nothing else. Thus,
things beginning with digits are ignored. Words hyphenated over line
boundaries are reassembled.
In order to provide as much context as possible for each keyword, the
text is "dejustified" within each paragraph, so that redundant spaces
between words are removed and successive lines are concatenated, with
a <space> replacing the <CRLF>. A new paragraph is assumed to begin
whenever there is a blank line, a <TAB> in column 1, or a <form
feed>.
XGPTYP Converts XGP file to text form Dec. 1975
Programmer: REG; modified by HJS & LES
Source file: XGPTYP.SAI[CSP,SYS]
XGPTYP converts an XGP file into a straight text representation of the
various XGP commands. Handy for debugging document compilers. It prompts
for a source file name. The default source file extension is "XGP".
Output goes either to a destination file or, if none is given, to your TTY.
Editors
Text Editors
Editors consist of two general types, basic text editors that make it
possible to create and modify texts of all sorts, and the second type
consisting of speciallized editors which handle formatting, indexing,
pagination, and similar details.
General Editors
General Editors
E The page and display oriented basic editor.
SOS Line numbering basic editor for teletype usage.
TECO Original MIT-DEC editor with many exotic features.
TV Earlier version of E
E The page and display oriented basic editor.
Currently maintained by ALS and ME.
Documentation
ESSENTIAL E a hard-copy Computer Science Report N0. STAN-CS-80-796
For other documentation, type
HELP E
READ E for complete documentation
HELP ETEACH for a self-teaching manual
<META><CONTROL>? while using E
READ EINIT.CMD[1,3] for some useful E macros
To use
Type ET NAME where NAME is the name of file to be edited.
Type CET NAME if file NAME is to be originally created.
To exit
Type <META><CONTROL>E
E is a page-oriented editor designed for use with a display terminal.
It brings one page of the text into core, as requested, and it displays a
portion of this page as if through a window. A line pointer and an
underscoring cursor mark the position in the text where editing is to
occur. Special commands allow you to go from page to page, to move the
window up or down on the page and to move the line pointer and cursor as
desired.
E achieves its speed (1) by using the system line editor, (2) by only
changing the core copy of the text on the completion of a line edit, and
(3) by updating the disk copy of the page only on the completion of a page
edit (automatically effected by moving to another page).
Type HELP ETEACH if you are unacquainted with this editor. An
abridged manual will be copied into your file area and displayed to you.
This manual is designed for self teaching and it leads you by simple steps
to a basic understanding of the editor so that you can then procede on
your own, with occasional references to the complete manual via the
question mark command, as noted below.
Many users of E find it convenient to have a copy of the hard-copy
manual ESSENTIAL E (Report No. STAN-CS-80-796) available to refresh their
memories concerning details that they use but seldom.
A complete manual on this editor is available on-line and is
referenced while using the editor by typing <CONTROL>?. Return to the
file that you had been editing is via the command <CONTROL>H.
SOS Line numbering basic editor for teletype usage.
Currently maintained by LES.
For other documentation, type
HELP SOS
READ SOS.LES[UP,DOC]
To use
Type ED NAME where NAME is the name of the file to be edited.
SOS is a line-number oriented editor for text files. It features two
flavors of intraline editing (for Teletypes and displays), string search
and substitution, hyphenless text justification, and other glories.
SOS provides the ability to insert, delete, modify, and print lines of
text. While most commands are line-number oriented, string search and
substitution commands are available. The entire text with line numbers is
brought into core.
Graphic Editors
GEOMED A graphics editor.
SUDS
MS
GEOMED OLD 1 3 19.1 20-MAY-74 0407 000 GEMBGB GEOMED 26-JAN-78 09-OCT-76 P774>
GEOMED A graphics editor.
GEOMED is implemented in PDP-10 machine code and is composed of about
250 subroutines. These subroutines are SAIL and LISP accessible. When
load in a SAIL core image, the GEOMED subroutines are called GEOMES for
"Geometric Modeling Embedded in SAIL"; when loaded with LISP, they are
referred to as GEOMEL, "Geometric Modeling Embedded in LISP". Strictly
defined, the name "GEOMED" refers to the interactive editor itself;
however the reader is warned that the named "GEOMED" may also refer to
GEOMEL, GEOMES, MESGEM, the data structures, the command languages, and so
on.
As a graphics language, GEOMED is all semantics with no syntax of its
own. The subroutines take from one to four arguments, return one or no
values, and usually have considerable side effects on the data structures.
Unless otherwise noted, all arguments and values are integers; subroutines
executed only for effect tend to return integer value zero.
The GEOMED data structure is implemented as twelve word blocks
containing pointers and data in the fashion usual to graphics and
simulation. The twelve word blocks are called "nodes". Nodes are referred
to by their actual machine address in the user core image, which is an
integer called a "link". Subroutines that take nodes as arguments or
return nodes as values pass links rather than the nodes themselves. In
SAIL, the user core image can be accessed as a special array named MEMORY;
in LISP, the core image is accessible in the last resort by the SUBRs:
EXAMINE and DEPOSIT.
A COMPLETE MANUAL exists on-line as GEOMEN.BGB[UP,DOC].
Font Editors
FONTS: COMBIN DDFONT EDFONT F FCOPY FMUNGE FONT FSCALE PIX TVFONT UFC[XGP,SYS]
Local font wizards include BH, DON, LES, REF, and TVR.
REF is responsible for this explanation.
References:
TVFONT.BGB[UP,DOC]
R PIX then ?
COMBIN[3,2]
EDFONT.TVR[UP,DOC]
FMUNGE.REF[UP,DOC]
F.TVR[UP,DOC]
FCOPY[3,2]
DDFONT[3,2]
UFC.REG[UP,DOC]
FORMAT.DOC[XGP,SYS]
FONT.BH[UP,DOC]
The XGP has the capability for outputing text in many different
character sets or "FONTS". Several programs exist on the system for creating,
examining and modifying fonts. These programs (and several other FONT
oriented programs) are described in this section. A glossary of font
"terms" follows at the end of the section.
There are essentially two different ways to create a font, either
by inputing a "picture" of the font through a TV camera, or by describing
the pixels of each glyph. To input a font through a camera, try using the
programs TVFONT or PIX. TVFONT is described in TVFONT.BGB[UP,DOC], and
PIX is "self documenting". That is, one can say "R PIX" to the monitor,
and "?" to PIX for documentation. Local experts on these programs include
TVR, RWW, and HPM. Good luck. You'll need it.
Font creation through glyph description is essentially similar to
font modification, only starting from scratch. There are currently three
font editors available on the system, EDFONT (documentation
EDFONT.TVR[UP,DOC]) for doing interactive font modification, FMUNGE,
(documented on FMUNGE.REF[UP,DOC]) a system for reading and writing font
files in text format, and editing them with ETV, and F (F.TVR[UP,DOC]).
Local experts on EDFONT include TVR and DON, on FMUNGE, REF. F is a
program for doing everything and anything to font descriptions.
Unfortunately, its documentation is basically unintelligible, its use,
unwieldy.
These last three programs, and several others, can also be used to
modify "font characteristics", such as font height and various character
kerns. For example, COMBIN (COMBIN[3,2]) can be used to "mix" two fonts
together, and FONT (FONT.BH[UP,DOC) to set the global characteristics of a
font. TVR is the local expert on COMBIN; BH on FONT.
And, finally, a useful program for modifying fonts is FSCALE
(documented on FSCALE.DON[UP,DOC]). FSCALE is useful for creating larger
and smaller versions of a particular font, through a uniform scaling
algorithm. See DON for help.
SAIL is not, of course, the only system with an XGP. Fonts from
other sites, such as ISI, CMU and MIT, can be converted to SAIL format
using the program FCOPY (documented on FCOPY[3,2]). FCOPY will also
produce samples of a font on the XGP. For viewing a font on a data disc
run DDFONT (DDFONT[3,2]). TVR is the FCOPY wizard; consult TVR or DON for
help with DDFONT.
After you've created or modified your font, you can compile it
with the program UFC.DMP[XGP,SYS]. UFC.REG[UP,DOC] explains what
compiling a font means, and why it's good for you. Unfortunately, the
error messages UFC produces are obscure, and there is no current wizard.
The format of font files is detailed in FORMAT.DOC[XGP,SYS]. Most
of these programs accept .FNT as the default extension for font files;
most will also look on [XGP,SYS] for fonts. [XGP,SYS] is where the
"system" fonts reside; some people, of course, have their own font
collections.
Glossary:
FONT A collection of raster described characters for printing
text on the XGP.
GLYPH An individual character, or character description in a font.
PIXEL 1/200 of an inch square, the resolution of the XGP.
Each "1" bit in a glyph description correspondes to
darkening one pixel.
FONT HEIGHT The number of pixel lines allowed for a line of type in this
font. The name of a font is usually a good approximation to its
height. Thus, NGR30.FNT[XGP,SYS] has a font height of 32 pixel
lines.
LEFT KERN The overlap that this character makes with the previous character.
Useful for getting italic characters to run together. Usually
set to zero.
Document Compilers
PUB Publication editor to achieve book format.
PUBMAC Macros for generation of tables of contents etc.
POX Formatting editor for use with the XGP.
POX Formatting document compiler for use with the XGP.
Maintained by REM
Reference POX.XGP[UP,DOC] (suitable for XSPOOLing)
Latest up-date info on POX.LOG[1,REM], not recommended for the
novice.
also read the HELP POX file.
POX is a program for making documents that take advantage of the
special features available on the Xerox Graphics Printer (XGP). The
special features that POX provides are mainly font switching and text
justification. (There are some other features, but a novice user need not
be concerned with them at present.)
POX takes a file as input and produces an output file that is suitable
for spooling with the XGP spooler (XSPOOL command). The input file
contains instructions to POX and the text of the document. POX takes
character sequences as commands. Each command sequence is preceded by a
character, called the Escape Character. The first character in the file
(ignoring TV directories and SOS line numbers) is taken by POX as the
escape character. Thus, the user gets to specify the escape character.
The escape character can be arbitrary, but reason dictates that it should
be some character that appears infrequently (or not at all) in the text of
the document. Common choices for the escape character is \ or $. In the
remainder of this document, the character \ represents the current Escape
Character.
To run POX, use the system command R POX. POX wants to see a command
of the form: <OUTPUT FILE>←<INPUT FILE>. If the <OUTPUT FILE> term is
omitted then the output file will have the same name as the input file,
and ".XGP" extension. If the extension is omitted on the output file,
".XGP" will be used.
If all is well with the input file, POX will run and produce an output
file suitable for XSPOOLing. POX will load the appropriate XSPOOL command
into your line editor, so all you have to do is type return to spool the
file.
PUB Publication compiler to achieve book format.
PUB is an advanced text justifier and page formatter intended
primarily for use by programmers. It can automatically number pages,
sections, figures, footnotes, etc. and can print their numbers in roman
numerals as well as in digit or letter form. It can generate cross
references, tables of contents, and indexes. Page layout is flexible, and
allows multiple column output. Line formatting includes tabs,
underlining, superscripts, subscripts, centering, and justification.
Macros programmed in a SAIL-like string-processing language can generate
text to be printed in the document. The output of the compiler is a file
which can be printed on the terminal, on the line printer, or on
microfilm.
A complete manual exists for this editor and can be consulted on-line
by typing READ PUB.TES[S,DOC]
PUBMAC Macros for generation of tables of contents etc.
.<< TWO COLUMN FORMAT by L. Earnest February 1975
.
.This is a description of how to use the PUB macros in BASKER.PUB[SUB,SYS].
.These macros set up one- or two-column formats with Section, Subsection, and
.Subsubsection numbering and automatic Table of Contents generation.
.
. Heading
.First, your file should specify the device. If it is "DEVICE XGP", then
.you must specify both a Font 1, which should be lightface,
.and Font 3, which should be boldface. For example, if you say
. REQUIRE "BASKER.PUB[SUB,SYS]" SOURCE_FILE;
.you will get the three Baskerville fonts, with Font 2 being italic.
.
. One-sided Documents
.For documents that will be printed on only one side of the paper, the
.Section name will appear in the top left of each page and the page number
.in the top right.
.
. Two-sided Documents
.For documents that will be printed on both sides of the paper, even numbered
.(left) pages will have the page number in the upper left corner, followed by the
.the Section name. Odd numbered (right) pages will have the Subsection name
.(if any) in the top left and the page number in top right.
TEX A system for Technical Editing by Donald E. Knuth
Maintained by D.E. Knuth
Reference TEX and METAFONT by D.E.Knuth, Digital Press (1979),
available at the bookstore.
TEX is a new document compiler developed by D. E. Knuth here at the
lab. The standard version is obtainable by typing "r tex" to the monitor;
our version assumes to some extent that the very next thing
you type is "\input <file><CR>" (note that it's \ not /). This makes
TEX look at <file>.TEX on your area, or failing that to look at <file>.TEX
on system area [1,3]. Your output will be on <file>.XGP and it can be
spooled with "xs <file>/head/ntn=33"; omit "/head" if you don't want the
fine print atop each page telling you the date and time of spooling.
If you use other fonts besides the ones declared in the file BASIC.TEX[1,3],
TEX will expect to find .TFX files for them on the same area as the font.
These files can be generated using the TFXGEN program. Say "read tfx"
for more information. Important: This version of TEX has thirteen font
files preloaded, so any additional fonts should be assigned font codes
other than "@adfgjlmquxz?".
The user manual is A. I. Memo No. 317 ( = CS Report No. 675); it is currently
out of print, so newcomers will need to buy the one mentioned above.
There's no on-line or line-printer version, but you might be able to
figure out how to read manual.tex[tex,dek].
The SAIL program contains extensive documentation about the implementation;
it's not merely "commented code". See file TEXSYS.SAI[tex,dek] and the
files it references.
MAXTEX TEX preloaded version and macros.
Mantained by MMD (Max Diaz)
Suplementary information:
Type READ MAXTEX for on-line documentation
KERMAC.TEX[tex,sys] Basic set of macros
PAPMAC.TEX[tex,sys] Macros for papers and documents
MATMAC.TEX[tex,sys] Macros for math
CODMAC.TEX[tex,sys] Macros for non-justified text
ESPMAC.TEX[tex,sys] Macros for text in spanish
LETMAC.TEX[tex,sys] Macros for letters and names & addresses
MACMAC.TEX[tex,sys] Macro macros (mainly for PAPMAC)
MAKTEX.CMD[TEX,MMD] Monitor commands to generate a TEX preloaded
version
MAXTEX is a preloaded version of TEX: it has information on 42 fonts
(named abc...zABC...L<>@;). Otherwise, it is used just as the ordinary
TEX in the system. MAXTEX is in area [1,3], so you need only type "r
maxtex" to the monitor and \input kermac.
The macros, however, furnish many more facilities than those found on
BASIC.TEX. These include handling of chapters, sections, etc.; automatic
table of contents (as well as plates and figures); several styles of
pages, with different headings; comments, annotations, footnotes;
multi-column format; paragraphing macros (enumerate, itemize, display,
indent, etc.); no-fill mode; and many more. Documentation is somewhat
frugal at the moment; it appears in file MAXTEX.MMD[UP,DOC] in the form of
general descritions. Brief comments appear in every macro file (KER, PAP,
MAT, COD, ESP, LET) before each macro; else, references to the TEX manual
are given.
For many applications, MAXTEX together with the macros furnishes a dialect
that permits you to forget largely about boxes and glue and totally about
\output routines. Furthermore, many of the routines are structured to
make reshaping easy (e. g. headlines, page styles, running-heads, fonts,
formats), for slightly more involved applications, or to customize the
style.
Built-in Editors
ILISP
AID
BASIC
Programming Languages
.sect Algebraic languages
.ssect1 ALGOL - like languages
.ssect2 SAIL
.reference(Symbolic languages, SAIL)
SAIL DMP 1 3 25.9 07-DEC-76 1906 005 1JFR COPY 09-DEC-76 08-DEC-76 T23
PROFIL DMP 1 3 7.1 07-DEC-76 2329 005 1JFR PROFIL 09-DEC-76 08-DEC-76 T23
INDENT DMP 1 3 8.3 29-JUL-72 1610 000 SLSDCS 24-OCT-76 05-JUL-75 P527>
SAILDP DMP 1 3 46.9 07-DEC-76 1111 005 1JFR SAILDP 08-DEC-76 08-DEC-76 T23
SEGFND DMP 1 3 5.3 20-OCT-74 1613 000 SRHT SEGFND 06-JAN-76 05-JUL-75 P527>
.ssect2 PASCAL
PASCAL DMP 1 3 20.6 29-MAY-76 0811 000 P TM COPY 21-NOV-76 14-JUN-76 P707>
.ssect1 Mathematical languages
.ssect2 Fortran
F40 DMP 1 3 10.1 09-JUL-76 2255 005 1EJG COPY 09-DEC-76 25-JUL-76 P731>
.ssect2 Interactive desk calculators
AID DMP 1 3 10.1 07-NOV-75 1710 000 ACTREG AID 09-DEC-76 25-NOV-75 P609>
BASIC DMP 1 3 12.6 17-MAR-73 0320 000 ACTREG BASIC 06-DEC-76 05-JUL-75 P527>
WISE DMP 1 3 6.9 24-FEB-72 1044 000 2RES 09-DEC-76 05-JUL-75 P527>
.sect Symbolic languages
.ssect1(LISP and LISP derivatives)
BCOMPL DMP 1 3 111.0 22-OCT-76 1757 000 1RPG BCOMPL 23-OCT-76 06-NOV-76 P789>
COMPLR DMP 1 3 32.9 31-MAR-76 1028 000 JNK BG COMPLR 08-DEC-76 11-APR-76 P680>
CROSS DMP 1 3 8.2 08-AUG-75 0943 000 SYSSUZ COPY 24-OCT-76 08-SEP-75 P570>
DDTLSP DMP 1 3 50.0 08-DEC-76 1258 000 AIDRPG DDTLSP 08-DEC-76 09-DEC-76 T25
FORMAT DMP 1 3 24.0 11-NOV-72 2302 000 S WD COPY 06-DEC-76 05-JUL-75 P527>
FUNLST DMP 1 3 13.2 08-AUG-75 0945 000 SYSSUZ COPY 01-DEC-76 08-SEP-75 P570>
IC DMP 1 3 49.9 24-FEB-75 1243 000 FOLRWW ICIC 15-NOV-76 05-JUL-75 P527>
IL DMP 1 3 11.9 29-JAN-76 1510 000 FOLRWW FRAID 09-DEC-76 17-FEB-76 P652>
LISP DMP 1 3 9.9 07-FEB-74 0123 000 SDWP LISP 08-DEC-76 05-JUL-75 P527>
MACLSP DMP 1 3 33.3 08-DEC-76 1444 007 204CGN MACLSP 09-DEC-76 09-DEC-76 T25
MEXPR DMP 1 3 23.9 19-JAN-74 1847 000 L70DAV MEXPR 09-JUL-76 05-JUL-75 P527>
MLISP DMP 1 3 23.9 13-NOV-74 1743 000 ENGHJE MLISP 12-NOV-76 05-JUL-75 P527>
MLISP2 DMP 1 3 33.9 31-MAY-74 2114 000 1HJE MLISP2 08-DEC-76 05-JUL-75 P527>
MLISPC DMP 1 3 33.9 13-NOV-74 1745 000 ENGHJE MLISPC 08-DEC-76 05-JUL-75 P527>
MONITR DMP 1 3 3.5 06-MAY-72 1138 000 1DCS 08-OCT-76 05-JUL-75 P527>
NCOMPL DMP 1 3 89.0 09-DEC-76 1036 007 AIDRPG NCOMPL 09-DEC-76
RLISP DMP 1 3 24.9 27-NOV-76 1455 000 1ACH TMP 08-DEC-76 04-DEC-76 P805
REDUCE DMP 1 3 49.9 09-DEC-76 1648 000 1ACH TMP 09-DEC-76
.ssect1(Other Symbolic languages)
PLNR DMP 1 3 23.0 26-APR-72 0408 000 1RPO 24-SEP-76 05-JUL-75 P527>
SCHEME DMP 1 3 60.0 09-DEC-76 1114 000 AIDRPG SCHEME 09-DEC-76
FASBOL DMP 1 3 34.8 25-MAY-75 0553 000 CSMJC COPY 01-DEC-76 05-JUL-75 P527>
SLR1 DMP 1 3 16.0 26-NOV-76 1242 000 PSI JP COPY 09-DEC-76 04-DEC-76 P805
.sect Languages for system building
.ssect1 (PDP-10 Assemblers)
FAIL DMP 1 3 15.8 03-JUN-76 1756 000 ACTREG FAIL1 09-DEC-76 14-JUN-76 P707>
MACRO DMP 1 3 9.2 19-JAN-76 2347 000 SMJC LOADER 07-DEC-76 01-FEB-76 P644>
MIDAS DMP 1 3 21.7 23-NOV-76 1436 000 NETMRC MIDAS 09-DEC-76 04-DEC-76 P805
.ssect1(Structured System Programming)
BLISS DMP 1 3 46.2 27-SEP-76 0908 000 BLI TM XBLS10 01-NOV-76 16-OCT-76 P777>
.ssect1(Educational System Programming)
MIX DMP 1 3 19.3 06-FEB-76 1900 000 1DSB COPY 13-NOV-76 23-FEB-76 P655>
MIXAL DMP 1 3 4.2 11-FEB-72 0950 000 13-NOV-76 05-JUL-75 P527>
Machine Languages
FAIL A fast one-pass assembly language
To use:
Have a source program written in assembly language with an
extension of .FAI or missing.
Give system command COMPILE <NAME> or use EX <NAME> if you
want program to be compiled and executed.
Reference: FAIL.REG[AIM,DOC],AIM 291
FAIL is an assembly program for PDP-6 and PDP-10 machine language.
FAIL operates in one pass, which means that it reads the input file
only once; the linking loader program (LOADER or LINK-10) completes
any aspects of the assembly which could not be done by FAIL. The
efficiencies which have been employed in its coding make FAIL five
times faster than MACRO-10, the DEC assembler.
FAIL processes source program statements by translating mnemonic
operation codes into the binary codes needed in machine instructions,
relating symbols to numeric values, and assigning relocatable or
absolute core addresses for program instructions and data. The
assembler can prepare a listing of the program which includes a
representation of the assembled code. Also, the assembler notifies
the user of any errors detected during the assembly.
FAIL has a powerful macro processor which allows the programmer to
create new language elements to perform special functions for each
programming job.
FAIL permits an ALGOL-style block structure which provides a way of
localizing the usage of symbols to particular parts of the program,
called blocks. Block structure allows the same symbol name to be
given different meanings in different blocks.
The user should be familiar with the PDP-10 instruction set, which is
described in both DECsystem-10 System Reference Manual and PDP-10 and
PDP-6 Instruction Sets (SAILON-71).
Other documents of interest:
Frost, M. UUO Manual, SAILON-55.5, November 1977
Harvey, B. Monitor Command Manual, SAILON-54.5, January 1976
Petit, P. RAID, SAILON-58.1, September 1969
The following are available in the DECsystem-10 Software Notebooks:
Cross-Reference Listing: CREF, June 1973
DDT-10 Programmer's Reference Manual, June 1973
Linking Loader Programmer's Reference Manual, August 1971
LINK-10 Programmer's Reference Manual, May 1973
MACRO-10 Assembler Programmer's Reference Manual, June 1972
DECsystem-10 Operating System Commands, February 1974
DECsystem-10 Monitor Calls, June 1973
MACRO An older 2-pass assemblier with good macro facilities
MIDAS MIT's assembler for the PDP-10
Maintained by RMS and MRC.
Access:
R MIDAS
MIDAS is a two-pass assembler for the PDP-10. While not as fast
as FAIL, it has considerably better error diagnostics and a much more
powerful macro facility. It is, of course, worlds ahead of MACRO-10.
MIDAS comes from MIT, and is their standard assembler the way FAIL is
the standard assembler here.
MIDAS also has the capability to generate FASL files for MAC LISP,
for those LISP hackers who need assembly language routines in their
LISP environment.
MIDAS is accessed in the way most compilers and assemblers are.
The simplest way to compile a MIDAS program is with the COMPILE, LOAD
and EXECUTE monitor commands.
The MIDAS language is documented in MIDAS.MRC[UP,DOC].
MIDAS OLD 1 3 26.6 12-NOV-77 2324 000 1MRC MIDAS 12-NOV-77 12-DEC-77 P1022>
MIDAS DMP 1 3 26.7 12-FEB-78 0828 000 1MRC MIDAS 22-FEB-78 21-FEB-78 P1070
PALX PDP-11 assembler
Maintained by RMS.
Access:
R PALX
PALX is a PDP-11 source code assembler for the PDP-10. This
program comes from MIT, and is considered better than the DEC-supplied
MACY11 program.
PALX OLD 1 3 6.9 14-SEP-77 0908 000 1MRC PALX 22-OCT-77 03-OCT-77 P981>
MIX
Algebraic Languages
PRUNE.DAT[3,2] listings
BAIL SAIL debugger
FAIL PDP-10 machine language assembler
FASBOL Dialect of Snobol4
LISP Pointers to documentation of various LISP dialects
SAIL Dialect of ALGOL
SNOBOL String processing language--see FASBOL
SAIL The standard AI lab. ALGOL based languague
PASCAL An ALGOL-60 based languague developed by N. Wirth.
Maintained by nobody at present.
For information about the peculiarities of the SAIL Pascal compiler, type
READ PASMAN. To find out about other documentation, type READ PASCAL. To
learn the language, see the Pascal Report by Wirth (can usually be found
at the bookstore), or take CS105 or CS106.
To use, type
EXECUTE FOO.PAS
The more common COMPILE class commands work as expected, but the user
should be warned that there are still some peculiarities in the way these
commands interface to PASCAL.
The newer version was put up at SAIL by Armando Rodriguez (ARR), now
departed, who also put up a version at LOTS and SCORE called PASGO which
is used by students and which produces a runnable core image instead of
having to be linked. The current compilers came via LOTS from DECUS, and
claims to be the '30-DEC-76' version from Hamburg.
BASIC
AID
WISE
FORTRAN 40
LISP languages List Processing Languages
Currently, the only LISP that is maintained is MACLISP, the MIT dialect.
Help for that version and other goodies can be found by doing "HELP
MACLISP" or by reading LISP.RPG[S,DOC] and LSPARC.RPG[UP,DOC]. MACLISP is
run on this system with the command: LISP.
Other LISPs available at the AI Lab are: LISP 1.6, ILISP, MLISP & MLISPC (a
compiler for MLISP), and RLISP.
MACLISP Standard AI Lab Lisp programming language.
One can run MACLISP by saying R MACLSP; allocation is much
the same as in the other local LISPs. To input a file named FOO.BAR
one says: (UREAD FOO BAR) or (UREAD FOO BAR DSK (BLE TCH)). This
opens the file in the correct mode but does not begin reading. In
order to read the file, one must set the flag ↑Q (control-Q) to T, by
either (SETQ ↑Q T), (IOC Q), OR ↑Q typed to the toplevel of MACLISP.
When the file is complete, the TTY becomes the input device. To read
from a file within a program, one does the same thing, but the ↑Q
option fails. Unfortunately, UREAD assumes a non-E file. To UREAD an
E-file (or a non-E file for that matter) one can use EREAD. When one
does (EREAD FOO BAR) (SETQ ↑Q T), then all MACLISP read routines,
such as (READ),(TYI), & (TYIPEEK) will read from the selected disk
file.
To write to a file one does (UWRITE) with no arguments; this
opens a file for writing with a name like 019RPG.LSP where 19 is one
of your job numbers and RPG is your PN. ↑R is the flag for output to
disk. Note that this does not shut off output to the screen; use ↑R
for that. Now one must name the output file by doing (UFILE FOO BAR),
which deletes any files with the same name, and renames the output
file to FOO.BAR. As with EREAD, all print routines will now print to
the selected file.
Sometimes you may encounter an error, and a breakpoint will
occur. Usually the information that is typed will alert you to the
cause of the error; if not, you should read HELP.DOC[AID,RPG] for a
description of the debugging possibilities. However, to get back to
the toplevel of MACLISP you type: ↑G or (IOC G). If the error is
unbound variable, one can say (RETURN '(<VALUE>)) to continue.
A very useful file to have is HELP.FAS[MAC,LSP] if you do:
(HELP),(FASLOAD HELP FAS DSK (MAC LSP)), or COPY this file to your
directory and do (FASLOAD HELP) an "AUTOLOAD" property will be set up
for all of the interesting functions mentioned in HELP.DOC[AID,RPG].
An AUTOLOAD property is a property list entry which has a file name
as its value. If one tries to apply the function with this property,
and there is no such function, MACLISP will FASLOAD the file and then
try to apply the function once more, the point being that this file
should contain a FASLOADable definition of the function.
A feature of BIBOP is that EREAD and HELP already have
autoload properties set up from the outset, so that doing
(EREAD FOO BAR) will work, and (HELP) will load the HELP features.
At this point you may wonder what FASLOAD means. Normally
when one compiles LISP, one gets in return a LAP file which is then
read in with a small resident assembler. This is indeed possible to
do in MACLISP, but the compiler can also assemble the LAP file
directly into a relocatable file which can then be loaded into
MACLISP with an even smaller resident loader. The gains are that
FASLOAD file are an order of magnitude smaller and load an order of
magnitude faster.
The MACLISP compiler is called NCOMPLR (for Number COMPiLeR)
and is noted for being the "best" LISP compiler in existence. In
particular there are facilities for declaring the types of objects so
that a fair amount of open-coding is possible; this is especially
nice for numerical computations (hence the "N" in NCOMPLR). For more
information on this either locate an old MACLISP manual or ask RPG or
WLS.
To compile a file do:
R NCOMPLR
<target>←FN.EXT<(SWITCHES)>
The <target> is optional and defaults accordding to the switches.
Briefly the switches are:
T Talk: verbose mode
A Assemble: take a .LAP file and assemble it
F Fasload: take a source file and compile & assemble it
K Kill: take a source file and compile & assemble it but
kill the LAP file
The default names are FN.LAP for a compiled file and FN.FAS for an
assembled file. NCOMPLR understands ALIASes.
Hopfully a new manual will appear from MIT, but for now there
are three known manuals at SAIL. RPG and WLS have 1 each, and the
bookshelf which used to be outside Lester's office has one. For now
you can read MACLSP.DM[UP,DOC] HELP.DOC[AID,RPG], and
LISP.NEW[AID,RPG], or ask RPG/WLS.
LISP 1.6 Stanford AI Lab Lisp 1.6 System
The STANFORD A.I. Lisp 1.6 System was originally an adaptation of one
developed by the Artificial Intelligence Project at M.I.T. Since 1966,
that system has been largely rewritten by John Allen and Lynn Quam.
The documentation can be found on LISP16.WD[S,DOC]. LISP 1.6 can be run on
this system with the command R LISP
MLISP Meta-notation LISP programming language
MLISP is a meta-notation for LISP. It makes LISP programs easier to read
and write. MLISP is maintained by Dave Smith (DAV) and is described in AI
Memo AIM-135 (CS-179), available online as MLISP.DAV[AIM,DOC].
To interactively translate and execute MLISP expressions, type
.R MLISP
*<expression> ; <expression> ; ...
To translate and execute an MLISP program on a file, type
.R MLISP
*LISP;
*(MLISP <filename>)
To translate an MLISP program and print out its LISP translation, type
.R MLISPC
*LISP;
*(MLISP <filename> NIL)
To translate an MLISP program and compile it to LAP, type
.R MLISPC
*LISP;
*(MLISP <filename> T)
A version of MLISP using UCI LISP exists. Type "R MLISP.UCI" instead
of "R MLISP" or "R MLISPC". However UCI MLISP does not contain the UCI
compiler, so programs to be compiled must first be translated to LISP
form and then compiled using the UCI compiler.
MLISP2 LISP derivative programming language.
MLISP2 is a powerful AI language based on LISP/MLISP. Capabilities
include backtracking, pattern-matching, and list-processing. MLISP2
is maintained by Dave Smith and is described in AI MEMO 195,
available online as MLISP2.DAV[AIM,DOC].
To translate an MLISP2 program, type
.R MLISP2 <core_size>
*(PARSE <source_file>)
To translate an MLISP2 program and print out its LISP translation, type
.R MLISP2.PRI <core_size>
*(PARSE <source_file> <destination_file>)
or
*(PARSE <source_file> <destination_file> NIL)
The second alternative makes MLISP2 act like a compiler-compiler;
namely, it translates and prints without executing the translation.
To use MLISP2 (rather than LISP) as the top level notation, type
.R MLISP2 <core_size>
*(PARSE)
Exit from this mode by typing _EOF_
ILISP UC Irvine Lisp
ILISP is the Stanford name for UC Irvine Lisp. It is a version of
Stanford Lisp 1.6 with an in-core BBN-style editor and superior trace and
break facilities for debugging. Detailed documention is available from
the Computer Science office at $3.50. There is also a machine-readable
version of the documentation on IL.TVR[UP,DOC].
To run ILISP on the Stanford system, try R IL
RLISP REDUCE Lisp
REDUCE is a program designed primarily for general algebraic computations
of interest to mathematicians, physicists and engineers. However, its
source language is general enough to allow for a full range of LISP-like
symbolic calculations. A description of this source language is in
RLISP.ACH[UP,DOC]. Anyone interested in the general algebraic capabilities
of the system should consult the REDUCE 2 User's Manual {see
RLISP.ACH[UP,DOC]}.
Programming aids
@ ATSIGN prepares a (compiler-like) cross-reference listing
Reference ATSIGN.RMS[UP,DOC]
Maintained by MRC
The @ program makes cross-reference listings of programs. One or many
files can be listed together. On each line will appear the file, page,
and line of the definition of a symbol referenced on that line.
Comparison listings can be made, containing only the pages changed since
the previous listing, for both programs and text-justifier output files.
* Menu:
* Basic:: Simplest usage of @, for programs.
* Output:: What @ output looks like, for programs.
* Text:: Simplest usage of @, for papers.
* Assembler:: What @ understands about assembler language.
* Lisp:: What @ understands about Lisp.
* Muddle:: What @ understands about Muddle.
* Quotes:: Quotes (') control whether files are listed.
* Switches:: What you can do with command line switches.
* Files:: What files are used, and their default names.
* Substitutions:: What to do when you move your source files.
ARPAnet programs
BH and MRC are good persons to help you with ARPA protocol if you have trouble
or fail to understand some of the following write-ups.
The follow programs are currently documented in the next few pages.
HOST and HOSTAB Examine the ARPAnet host table
TELNET Communicate with an ARPAnet host
SUPDUP Communicate with an ARPAnet host via SUPDUP display protocol
OTN and NTN OBSOLETE and ARCHAIC versions of TELNET
IMSSS Communicate with IMSSS
FTP File Transfer Program to transfer files over the ARPAnet
HOSTAT Report status of hosts on the ARPAnet
IMPSTA Report status of ARPAnet connections at SAIL
TALK Link to users at other hosts on the ARPAnet
NETWHO Report who is logged in on another host on the ARPAnet
TIMES Report on times from the network time servers
DFTP and DCSTAT Hack the CCA Datacomputer
HOST and HOSTAB Examine the ARPAnet host table
Written and maintained by MRC.
Access:
R HOST;host-name
R HOSTAB
If HOST is called with the host name in the command line,
it will exit after completion. Otherwise it will prompt
for a new name; just ↑C out if done.
The HOST program is used to look up information in the
host table about a particular host name. This information
includes the official name of the host if the name is a
nickname, the host number (in both octal and decimal),
whether the host is a user or a server, the host machine and
the host operating system.
When you run HOST, it will prompt with a sharp (#)
character. Type the host name (or any abbreviation) you
want to look for. The program will print all hosts (and
nicknames) which match the input specification. When it is
done, it will prompt for another specification. A null
specification types EVERYTHING (!!).
Note that even non-unique abbreviations are accepted.
For example "SU" will print out ALL of the Stanford University
hosts. This is different from TELNET, etc. which only accept
abbreviations which are unique to a single host.
Note also the HOSTAB program, which pretty-prints the
host information using official names only in ascending
numerical order. If you want a "host list", HOSTAB is
probably what you want.
HOST DMP 1 3 302 20-FEB-78 2246 000 1MRC HOST 23-FEB-78 21-FEB-78 T14
HOSTAB DMP 1 3 320 31-JAN-78 0159 000 1MRC HOSTAB 20-FEB-78 13-FEB-78 P1064>
TELNET Communicate with an ARPAnet host
Written and maintained by MRC.
Access:
TELNET socket-number,host-name
OTN socket-number,host-name
The <CONTROL><META>Q command (or <CTRL>↑ Q on non-displays)
closes the network connection and exits from TELNET.
TELNET is used to communicate with other hosts on the ARPAnet.
Using TELNET, a user at a terminal here can log into a remote host.
The socket number argument is optional and can be omitted. An
octal host number is legal instead of a host name.
The TELNET command defaults to using socket 27 or the new
TELNET protocol. The OTN command defaults to using socket 1 or the
old TELNET protocol.
TELNET is described in full detail in TELNET.MRC[UP,DOC]
TELNET DMP 1 3 2.6 07-FEB-78 2105 000 1MRC TELNET 23-FEB-78 21-FEB-78 P1070>
SUPDUP Communicate with an ARPAnet host via SUPDUP display protocol
Written and maintained by MRC.
Access:
SUPDUP host-name
The [ESCAPE] I Q command closes the network connection
and exits from SUPDUP.
SUPDUP is used to communicate with other hosts on the ARPAnet
using the SUPDUP display protocol as described in RFC 734 in the
ARPAnet protocol handbook. The SUPDUP protocol is a highly
efficient display protocol which originated as the internal protocol
in the I.T.S. timesharing system for controlling MIT's display
terminals.
Currently only we (SU-AI) and the I.T.S. systems at MIT (AI, ML,
MC, and DM) have SUPDUP servers; consequently SUPDUP is used primarily
to run as a display at MIT from here. SUPDUP runs only on displays.
SUPDUP is described in full detail in SUPDUP.MRC[UP,DOC]
SUPDUP OLD 1 3 8.9 29-JAN-78 1734 000 1MRC SUPDUP 29-JAN-78 13-FEB-78 P1064>
SUPDUP DMP 1 3 8.9 20-FEB-78 0151 000 1MRC SUPDUP 23-FEB-78 21-FEB-78 T14
IMSSS Communicate with IMSSS
Maintained by MRC.
Access:
R IMSSS
The <CONTROL><META>Q command (or <CTRL>↑ Q on non-displays)
closes the linker connection and exits from IMSSS. DO NOT
CALL OUT SINCE IT WILL HANG UP THE LINKER UNTIL THE IMSSSS
PHANTOM REALIZES IT IS FREE.
The IMSSS program is used to talk to IMSSS' Tenex system in much
the same way as TELNET talks to Tenex systems.
This program also provides a method of performing file transfer
from IMSSS. The program may be replaced with another that will use
the Dialnet protocol.
The IMSSS program is documented in IMSSS.JBR[UP,DOC]
FTP File Transfer Program to transfer files over ARPAnet
Maintained by MRC and BH.
Access:
FTP host-name
FTP copy-spec (read the documentation)
The QUIT command closes the network connection and
exits from FTP.
FTP is used to transfer files over the ARPAnet. How to do so is
too complicated to describe here, but briefly the most important
commands are:
GET local-file ← foreign-file
to snarf a file from a remote site and
STORE local-file → foreign-file
to push a file from here to a remote site.
FTP is documented in the monitor command manual and in NEWS[UP,DOC].
NEWS[UP,DOC] contains much information regarding the new "one-liner"
FTP copy specs which should be read.
HOSTAT Report status of hosts on the ARPAnet
Written and maintained by MRC.
Access:
R HOSTAT
HOSTAT reads the ARPAnet survey information from MIT-DMS and
pretty-prints it on the user's console, listing hosts on the network
and what their current status (up, down, refusing, etc.) is. It takes
no commands and it exits when done.
IMPSTA Report status of ARPAnet connections at SAIL
Written and maintained by MRC.
Access:
R IMPSTA
Typing any character causes the program to exit. The
CONTINUE monitor command will continue its operation.
IMPSTA reports the status of all the ARPAnet connections here at
SAIL in real-time. On displays, it uses display programs to provide a
real-time snapshot of the status of the IMP at any given moment. The
program is cyclic; on DD's and III's it updates every second, on DM's
it updates every 5 seconds. On non-displays it merely prints the entire
status every 20 seconds.
The information output by IMPSTA and the format it is in is
documented in IMPSTA.MRC[UP,DOC].
TALK Link to users at other hosts on the ARPAnet
Written and maintained by MRC.
Access:
TALK;user%host
The <CONTROL><META>Q (or <CTRL>Z on non-displays) character
will break the link and network connection and exit from TALK.
The TALK program allows users to link to a user on another host
on the ARPAnet. The link is set up as character-at-a time. On displays,
one can switch to the line editor with the <META>L command, or switch
back to character-at-a-time with the <CONTROL><META>L command.
Any host which supports RS EXEC (ie, Tenex, I.T.S., Multics, and
SAIL sites) will support network links.
TALK OLD 1 3 1.5 09-JAN-78 0446 000 1MRC TALK 09-JAN-78 23-JAN-78 P1050>
WHO Report who is logged in on another host on ARPAnet
Written and maintained by MRC.
Access:
R WHO;host
The WHO program prints a short status summary of the users
who are logged in at that remote host. Any host which supports the
RS EXEC protocols will support network WHO's.
TIMES Report on times from the network time servers
Maintained by MRC. Original version by KLH%SRI-KL.
Access:
R TIMES
The TIMES program is a demonstration program of the ARPAnet time
protocol. It calls up the hosts which support the ARPAnet time
protocol, asks them for their idea of the time, and prints it out.
Currently these hosts are: AMES-67, MIT-AI/ML/MC/DM, SU-AI.
TIMES DMP 1 3 273 12-FEB-78 0941 000 1MRC TIMES 21-FEB-78 21-FEB-78 P1070
DFTP and DCSTAT Hack the CCA Datacomputer
Maintained by MRC.
Access:
R DFTP
R DCSTAT
The QUIT command to DFTP (which requires two carriage returns
for confirmation) closes the network connection and exits from
DFTP.
DFTP is the "Datacomputer File Transfer Program" and is used to
store and retrieve files from the CCA Datacomputer. DFTP is documented
in detail in DFTP.MRC[UP,DOC] and this document MUST be read by any
prospective user of DFTP.
DCSTAT prints a "prerecorded" status message about the current
state of the Datacomputer from CCA and exits.
DFTP OLD 1 3 9.0 23-NOV-77 2354 000 1MRC DFTP 07-DEC-77 12-DEC-77 P1022>
DDHACK To control DD displays from remote ARPA hosts
Maintained by DEA
To use type R DDHACK
Documentation in DDHACK.DOC[I,DEA]
DDHACK implements the TELNET protocol and talks directly to the remote
host over the network.
When DDHACK starts, it prompts for a host, and the user may type in any host
name (host numbers and special sockets are not implemented). DDHACK will connect
to the host using the regular TELNET ICP socket.
The program provides access to any one of the 16 page printers available
to a job running on a display terminal. The user, or the program running
on the PTY may, through issuing appropriate commands, select a page printer
to recieve text, display selected page printers, and control the screen position
and the number of lines in each page printer.
The program also provides 10 buffers for inserting data disc display
programs. These programs are constructed out of text sent to the program
from the PTY. The user, or the program, may define a screen "window" associated
with each buffer by specifying the top line of the window, its width in characters
and its starting column. Commands may be issued by either program or user
to run the display programs for selected windows at any time. Data can be
moved from one buffer to another. When data being sent to a selected buffer
causes the buffer to overflow, the next buffer in numeric sequence is selected
as the current buffer with the same characteristics as the former buffer,
and the rest of the data is transfered to the newly selected buffer.
[In the future, the user may designate certain buffers as "protected"]
Debugging Aids
DDT DMP 1 3 3.9 10-MAY-76 2338 000 ACTREG DDT 08-DEC-76 25-MAY-76 P698>
UEDDT DMP 1 3 4.9 05-DEC-76 1745 000 1JBR UEDDT 08-DEC-76 07-DEC-76 T20
FRAID DMP 1 3 8.1 30-NOV-76 2006 000 1JBR FRAID 09-DEC-76 04-DEC-76 P805
PSEG DMP 1 3 8.9 09-DEC-73 0151 000 XAIL COPY 06-JAN-76 05-JUL-75 P528>
RAID DMP 1 3 7.9 30-NOV-76 2004 000 1JBR RAID 09-DEC-76 04-DEC-76 P805
.sect Cross Reference Programs
ATSIGN DMP 1 3 15.0 12-OCT-76 2018 000 1 RG ATSIGN 04-DEC-76 23-OCT-76 P781>
CREF DMP 1 3 1.7 30-JUL-76 1343 005 1JFR LOADER 24-NOV-76 16-AUG-76 P743>
GLOB DMP 1 3 1.1 15-SEP-72 1408 000 CSPSYS 27-OCT-76 05-JUL-75 P527>
GRUMP DMP 1 3 1.5 28-SEP-76 2022 000 1JFR GRUMP 09-DEC-76 09-OCT-76 P774>
SOLO DMP 1 3 1.4 10-JUL-76 0351 000 1JBR SOLO 02-DEC-76 25-JUL-76 P731>
RAID An interactive debugging aid (also FRAID).
Maintained by JEFF Rubin
Reference: RAID.PMP[S,DOC]
To use: Load your program using the /V or /H switch or use the SNAIL
commands, PREPARE, TRY or DEBUG (see below).
RAID is an interactive debugging program that uses the displays
and allows dynamic monitoring of memory locations. RAID lives in
core with your program and allows you to do various things with and
to your program, such as stop at selected places and examine your
core image, etc. The major advantage of RAID over DDT is that RAID
uses the displays to give you a constantly updated view of selected
locations in core. It also can be used from a teletype, typing only
those lines that have changed since last time it wanted to display
something.
It is possible to use RAID in a stand-alone fashion, for writing
small programs on the spot, or finding the octal representation of
something, for example. The monitor command R RAID
calls in a fresh copy of RAID and starts it up.
SNAIL knows about RAID; the PREPARE, TRY, and DEBUG commands cause
RAID to be loaded with your program. This saves you the trouble of
remembering the loader switches.
The loader will load RAID with your program if you use the /V or
/H switch. This saves you the trouble of explicitly loading
RAID.REL[1,3]. For example if the binary file for your program was
called FNORP, the loader command /VFNORP$ (where $ means alt-mode)
would cause the loader to load RAID with your program. If you put
this switch after the name of your file, it is also necessary to tell
the loader to load your program symbols; this is done with the /S
switch. Here are some sample commands to load FNORP:
/SFNORP/V$ (Load symbol table, then RAID)
/VFNORP$ (Load RAID, then FNORP, then symbol table)
It is sometimes a good idea to put RAID after all the code, so
addresses in the core image will be close to where they would be
without the RAID. This helps if you are debugging a copy without RAID
in parallel to one with RAID.
Once you have your program and RAID in core, you must get into
RAID. This is done by typing DDT<cr> to the system. This is because
the system can't tell the difference between RAID and DDT. It is also
possible to enter RAID by hitting a breakpoint (ways to set and clear
breakpoints are discussed later) or by jumping to RAID's starting
address (this is the global symbol DDT, and it can also be found in
the right half of JOBDDT).
When RAID is entered, the display screen flashes and the RAID
display will appear. The duplexing of keyboard input moves down to
the bottom of the screen. RAID is now ready to accept commands.
FRAID
There is also a version of RAID for examining files; it is called
FRAID. The monitor command R FRAID calls in a fresh copy and starts
it up. FRAID first asks if the file to be examined is a DMP file (if
so, the starting address will be noted and FRAID will look for a
symbol table) and whether the file is to be modified. If FRAID is
run in file-modify mode, all changes made in the core version of the
file are immediately written onto the disk.
All of the commands that run a job and set and clear breakpoints
are illegal in FRAID. Furthermore, if the file is a dump file, locations
0 through 73 are non-existant. There are a few commands that work only
in FRAID or which have different meanings in FRAID. These are:
αS Simulates setting $IO to -1. Causes I/O instructions to be typed out
βS Simulates setting $IO to 0. Causes I/O instructions to not be typed out
εE Exits from FRAID. RELEASES the file after finishing all modifications.
Conversion Programs
.chapter publications and fonts
.sect Formatting Programs
POX DMP 1 3 25.9 19-OCT-76 0242 000 1REM PXGOOD 09-DEC-76 30-OCT-76 P785>
.reference(XGP Programs,POX)
PUB DMP 1 3 45.0 22-AUG-76 0002 005 1JFR PUB 09-DEC-76 08-SEP-76 P756>
PUB2 DMP 1 3 11.1 30-JUN-76 2303 000 1JFR FRAID 09-DEC-76 11-JUL-76 P720>
RUNOFF DMP 1 3 2.1 12-DEC-74 1519 000 11 BO RUNOFF 20-OCT-76 05-JUL-75 P527>
XAP DMP 1 3 15.1 23-MAR-74 2104 000 1BGB XAP 16-OCT-76 05-JUL-75 P528>
.reference(XGP Programs,XAP)
XIP DMP 1 3 12.9 01-JUL-76 0907 000 MAJAM XIP 07-DEC-76 11-JUL-76 P720>
.reference(XGP Programs,XIP)
TXTF80 DMP 1 3 1023 20-MAR-72 2221 000 F80RHT 06-JAN-76 05-JUL-75 P527>
COLIST DMP 1 3 3.9 14-NOV-74 1718 000 ACTREG COLIST 05-DEC-76 05-JUL-75 P527>
.sect XGP Programs
COMBIN DMP 1 3 6.1 23-DEC-75 2001 000 XGPTVR COMBIN 06-DEC-76 05-JAN-76 P632>
CRAM DMP 1 3 1.9 21-JAN-74 2245 000 ISRS COPY 24-SEP-76 05-JUL-75 P527>
F DMP 1 3 32.9 08-NOV-76 1641 005 XGPTVR F 20-NOV-76 20-NOV-76 P800>
FCOPY DMP 1 3 13.9 11-JUL-76 0454 005 XGPTVR FCOPY 09-DEC-76 25-JUL-76 P731>
FOLMRG DMP 1 3 10.2 01-DEC-76 2109 000 SHOREF FOLMRG 08-DEC-76 02-DEC-76 T16
FREEFO DMP 1 3 5.9 10-JAN-75 1705 000 SLES FREEFO 05-SEP-76 05-JUL-75 P527>
INDEX DMP 1 3 4.6 03-DEC-74 1713 000 NS ME INDEX 06-SEP-76 05-JUL-75 P528>
KWIC DMP 1 3 36.9 07-FEB-74 1852 000 SLES KWIC 24-OCT-76 05-JUL-75 P527>
TENGWR DMP 1 3 6.3 13-OCT-76 0620 000 234DON TENGWR 02-DEC-76 30-OCT-76 P785>
TJ6PUB DMP 1 3 12.6 06-JAN-75 1407 000 MITMLM TJ6PUB 23-JUN-76 05-JUL-75 P528>
XEROX DMP 1 3 6.1 25-MAR-73 1814 000 DLES XEROX 08-NOV-76 05-JUL-75 P527>
XGPTYP DMP 1 3 6.5 19-JUL-76 1829 000 SLES XGPTYP 08-DEC-76 01-AUG-76 P735>
XGPVID DMP 1 3 13.9 16-AUG-73 1143 000 GEMTVR COPY 01-OCT-76 05-JUL-75 P528>
File duplicating programs
COPY
A major group of commands runs the COPY program. Their arguments are
generally in the form "new-file ← old-file":
COPY copy a file
TRANSFER copy and delete the original
RENAME rename a file or change protection
The following COPY commands imply a destination, and take just one or more
input file specifications (separated by commas if more than one):
DELETE delete a file
TYPE copy to the terminal
LIST copy to the line printer (SPOOL, below, is preferred)
PRINT copy to the line printer, different format options
XGPLIST copy to the Xerox Graphics Printer (XSPOOL is preferred)
DIRECTORYtype file directory
The COPY manual explains these commands fully, along with various options
specified in the argument list; see Appendix 2 of the Monitor Command Manual.
While it is possible to use the copy command to make listings, this should
be done only on an emergency basis. Use the SPOOL commands (see below).
SPOOL
Since only one job can use the line printer or XGP at a time, if several
people want to make listings at once there is a scheduling problem. To
solve this, the system allows listing requests to be stored on disk, and
processed one at a time by spoolers which actually control the LPT and XGP.
The system commands for this function are:
SPOOL request line printer listing of specified file(s)
XSPOOL request XGP listing of specified file(s)
UNSPOOL delete a spooler request
QSPOOL type out spooler status and queues
The SPOOL commands also allow editing options to be specified in the
argument list; see Appendix 3 of the Monitor Command Manual for details.
COPY
Reference: COPY.RPH[S,DOC] or Monitor Command Manual Appendix 2.
COPY reads data from the logical file(s) indicated by the source term,
performs any operations requested by the switch term(s), and writes the data
on the logical file indicated by the destination term. Any listing
information goes to the list term.
Dev and p,pn are sticky in the source; that is, if they are absent, the last
one specified is used. The default device is DSK and the default p,pn is
blank (those of the current job).
A single * may be substituted for any of the following:
filnam
ext
p
pn
A * in the source term means "all." A * in the destination term means "same
as in source file being transferred."
If filnam.ext is absent in the destination term, *.* is assumed. If the
destination filnam.ext are specified (no *'s), all source files will be
concatenated into one big file with that name.
For example:
COPY DING←FOO,BAZ
would cause a file named DING to be created on your disk area comprised of
the files FOO and BAZ from your area. If filnam.* or *.ext is used in the
destination term, the source files will be copied onto the destination one
by one with the new filename or extension. <destination term>← may be left
out and DSK:*.*← will be assumed. For source terms with directory devices
you must specify the filnam.ext.
If you try to write on top of a file which already exists, you will be given
the option of deleting it or not. If any of the source files you have
specified do not exist, you will be informed and given the proper option.
If a string of source descriptors is specified, the string is executed from
left to right.
You cannot write a file in two different modes (e.g. FIL1←TTY:,DSK:FIL2).
However FIL1←TTY:,DSK:FIL2/ASCII is quite acceptable (/ASCII causes the data
mode to be 0). Data modes are explained in the UUO Manual.
The <spec term> construct causes the scanner to continue scanning in the
file specified by the term. The term must indicate a unique file. When end
of file occurs the scanner again reads from the terminal. No spec terms may
appear in the file. Switches preceding the "@" are treated as sticky
switches. Switches following the "@" are treated as sticky switches only
while reading from the indirect file. In a sense the indirect file is a
"program block." Upon leaving the "block" all defaults are reset to those
in force just before the "@". A device name and p,pn may precede the "@",
in which case the defaults are changed to those, but no operation is done.
The device and p,pn used in the spec term do not affect the current
defaults.
The \<filehack selector> construct for a term is a special shorthand feature
to allow commonly referenced files which would normally require a large
amount of typing to be entered quickly. The following is a list of legal
filehack selectors and what they are short for (<prg> stands for the current
programmer name right justified). Only enough letters to uniquely identify
the name among those in this list need be typed.
Filehack
Selector File selected What for?
MSG <prg>.MSG[2,2] Current user's mail file
MAIL <prg>.MSG[2,2] Current user's mail file
PLAN <prg>.PLN[2,2] Current user's plan file
PLN <prg>.PLN[2,2] Current user's plan file
NAP <prg>.NAP[2,2] Current user's NS notification file
NS <prg>.NAP[2,2] Current user's NS notification file
RPG *.RPG[*,<prg>] All of current user's RPG files
OPTION OPTION.TXT[*,<prg>] All of current user's option files
DOWN MAINT.TXT[2,2] System downtime forecast
DIGEST DIGEST[2,2] Latest A.P. news digest
NOTICE NOTICE.TXT[2,2] System message file
GRIPES GRIPES.TXT[2,2] System gripe file
DAY DAY.TXT[2,2] Daily birthday or holiday message
The ∂{<pn>|*} construct is another form of shorthand for referencing MAIL
files (see Appendix 4 of the Monitor Command Manual, in file
MONCOM.BH[S,DOC]). If no argument follows the ∂ then the current user's
mail file is indicated. If <pn> is used, it means that user's mail file.
And lastly, if * is used the file NOTICE.TXT[2,2] is selected (this is the
public mail file). The default extension (.MSG) and PPN ([2,2]) implied by
∂ can be explicitly overridden, e.g., ∂PRG.PLN will get user PRG's plan
file.
There is a page counter in COPY which monitors ASCII output for form feeds.
When a form feed is encountered, the counter is incremented. If a page list
is used in a term, N is taken as the starting page of this output and M (or
N if M is absent) as the ending page. Output is only active when the
counter is within the range of the page list (e.g., LIST COPY(21) would list
page 21 of the file COPY). When the end of the first term is exhausted,
control is transferred to the next term, and so on until the right
parenthesis is reached, at which point output ceases. If more than one file
is indicated, the page list is re-scanned for each one. Page lists are
never sticky. An asterisk (*) may be used in a page list instead of the
final page number, to denote the last page, e.g., LIST COPY(3:*) would list
all but the first two pages of the file COPY.
Switches will be described in a section of their own. See /LIST for an
explanation of "list term."
Logical device names may be used, but all switches apply to the physical
device. The following are legal physical devices for the copy command:
DSK UDPn DTAn MTAn TTYn
LPT XGP PTR PTP TTY
When the special character ↓ (↑A on Teletypes) appears, the scanner will
read the line character-by-character without interpretation until the next ↓
(or ↑A). This is useful for allowing non-alphameric characters to be
included in filenames, e.g., editor or spooler temporary files.
For numeric input there is always a default radix (either decimal or octal).
Sometimes, however, it is desirable to force one or the other. A number
preceded by a single quote is always interpreted in octal. A number
preceded by a double quote is always interpreted in decimal.
SPOOL, XSPOOL, QSPOOL and UNSPOOL, [LIST] and [XSPL]
Reference: SPOOL.REG[UP,DOC] (updated 19-NOV-77)
Monitor Command Manual Appendix 3 (not completely up-to-date)
Spooling provides a method of producing line printer listings of files
without the usual disadvantage of tying up a user's job while the listing is
actually being done and without usurping the position of others using SPOOL.
(The following is taken from page 2 of SPOOL.REG[UP,DOC]
This file documents the entire spooler system except for the subroutines
available for making spooler command files. Those subroutines are
documented separately in the file SPSUB.REG[UP,DOC]. Documented here are:
SPOOL - Accept commands to spool files to the LPT.
XSPOOL - Accept commands to spool files to the XGP.
QSPOOL - Spooler status report program
UNSPOOL - Deletes spooled requests. Modifies PRINTR behavior
[LIST] - The actual LPT listing program.
[XSPL] - The actual XGP listing program.
To use the spooler, a user must create commands for it. A command is the
name of a file to list, and control switches. Spooler commands are created
by the monitor commands SPOOL and XSPOOL.
As an example of spooling, the monitor command
SPOOL SPOOL.REG[UP,DOC]
will cause the LPT spooler to list the file SPOOL.REG[UP,DOC].
Spooled listings are preceded by a title page (except see /NOTITLE below),
used to make it easy to separate different listings. This title includes
the file identifier, the name of the requestor and his project-programmer
name, the current date and time, and the date and time when the file was
last written. Programmer names are read from the file FACT.TXT[SPL,SYS].
Project names (of which there are few) are read from the file
XFACT.TXT[SPL,SYS].
In the discussion below, "SPOOL" is used to mean either the command SPOOL or
the command XSPOOL, except as noted. SPOOL makes requests for the LPT
spooler; XSPOOL makes requests for the XGP spooler.
To have the spooler make a listing the user must tell the spooler what
file(s) to print. This easiest way to tell the spooler what to do is by the
monitor command SPOOL. This command consists of the word SPOOL followed by
the name(s) of the file(s) to be listed. File names are separated by
commas. Each file name may be followed by switches, explained below. The
program SPOOL will send commands to the spooler.
Files to be spooled are specified in the conventional way, by file name,
extension, and optionally project-programmer name.
Asterisk, *, may be used to allow matching of any file name, extension,
project name, or programmer name. (RPG, DMP, and REL files will not be
matched by * in the extension).
If no extension is specified and the file is not found, it is then tried
with .LPT or .XGP as the extension for SPOOL and XSPOOL respectively.
Switches are allowed either preceding or following the file name. Switches
that precede the name are sticky and will be applied to subsequent names. A
switch consists of a slash, the switch name, and sometimes, a parameter.
For example, /REPEAT=5.
The following switches are available. Note that most switches occur in two
senses (e.g., delete and nodelete). This allows an explicit switch in some
term to override a sticky switch.
Switch Action
DELETE DELETE this file after printing. The file protection
NODELETE of this file must be low enough so that the spooler
can delete it. The file must belong to the requestor
(alias not allowed).
NONUMBER Omit SOS line numbers from the listing. "N" is an
NUMBER accepted abbreviation for NONUMBER.
FORTRAN The first character of each line is interpreted as a
NOFORTRAN FORTRAN carriage control character.
LPT100 The spooler will open the LPT in mode 100, instead of
LPT0 the usual mode 0. This changes some character codes.
HEADING Print a page heading at the top of each page. "H" is
NOHEADING accepted as HEADING. HEADING is the default for all
files, except:
LST or DOC extensions,
any file from any area with programmer = DOC.
The heading includes date, time, filename, and page
numbers.
TITLE Precede the listing with a title page. TITLE is the
NOTITLE default for all files.
NARROW Center the title page to fit an 8.5 inch wide page.
NONARROW
RECOPY Copy the file to [SPL,SYS] and list the copy. This
NOCOPY allows the file to be edited while the listing is in
progress.
REPEAT=n Make n copies of the listing. (REPEAT is NOT sticky)
COPIES=n is like REPEAT=n.
EXTRA=n Insert n extra line feeds in the listing after every
line feed in the file. (EXTRA is NOT sticky).
DUMP Octal listing. Data will be printed as octal full
NODUMP words. (OCTAL is an equivalent switch.)
NOFF Each line feed in the file is translated to '177&'21
FF which causes single spacing with no form-feed between
pages.
NOWARN Suppress "spooling done" typeout after listing.
WARN
ASK Before making the spool command, SPOOL will type the
file name and wait for the user to answer with "Y" to
spool the file. (This is useful with *.* terms).
HOLD=hhmm The listing will be held in the queue until the time
specified by hh hours, mm minutes. (24-hour time is
assumed.) If hhmm is prior to the current time, hhmm
tomorrow is assumed. HOLD is not allowed with XSPOOL.
MODE=n Open the file in mode n (n is octal).
File specifications may be read from an auxiliary file by including in the
command line the name of the auxiliary file preceded by @. This file may
include file names and switches.
TENDMP
6TO10
Communication Programs
.chapter Communication -- The Mail System
MAIL DMP 1 3 10.1 05-DEC-76 1857 000 1 ME MAIL 09-DEC-76 07-DEC-76 T20
CANCEL DMP 1 3 942 06-FEB-76 1602 000 1 ME LOADER 08-DEC-76 23-FEB-76 P655>
RCV DMP 1 3 4.5 27-SEP-76 1643 000 1 ME RCV 09-DEC-76 09-OCT-76 P774>
.chapter Conecting to Other Systems
.sect ARPA network
⊗c DFTP DMP 1 3 6.8 07-DEC-76 0414 000 NETMRC DFTP 09-DEC-76 07-DEC-76 T20
⊗c FTP DMP 1 3 9.6 05-DEC-76 1856 000 1 ME FTP 09-DEC-76 07-DEC-76 T20
⊗c RSEXEC DMP 1 3 2.5 13-SEP-76 0025 000 GGFF RSEXEC 07-DEC-76 28-SEP-76 P767>
HOST DMP 1 3 1.2 05-DEC-76 1855 000 1 ME HOST 07-DEC-76 07-DEC-76 T20
.reference(Information on the ARPA net,HOST)
.sect Other Sites
⊗c DIAL DMP 1 3 2.5 14-JUN-76 0150 000 1JBR DIAL 09-DEC-76 27-JUN-76 P712>
[P,TED]
HANG DMP 42 28-NOV-73 1504
⊗c IMSSS DMP 1 3 2.8 26-APR-76 0356 000 1JBR IMSSS 09-DEC-76 10-MAY-76 P692>
cards /ibm 360
lots
MAIL
MAIL BH UPDOC 19.1 21-JUN-76 1551 000 1 ME E 08-MAR-78 05-JUL-76 P717>
MAIL OLD 1 3 10.2 08-SEP-77 1319 000 1 ME MAIL 14-FEB-78 27-SEP-77 P977>
MAIL DMP 1 3 10.9 20-FEB-78 1937 000 1 BH MAIL 23-FEB-78 21-FEB-78 T14
FTP EFTP
Demonstration programs
.chapter games
.sect Intelligent Games
.ssect1 Chess
.ssect1 Other Intelligent Games
TECH2 DMP 1 3 75.9 23-JUL-74 0228 000 105SGK TECH2 05-DEC-76 05-JUL-75 P527>
JOTTO DMP 1 3 22.6 18-NOV-72 1801 000 FRPH JOTTO 09-DEC-76 05-JUL-75 P527>
DOC DMP 1 3 17.0 20-AUG-70 1432 000 04-DEC-76 08-SEP-75 P570>
DOCTOR DMP 1 3 47.0 23-NOV-76 1145 000 MACLSP DOCTOR 23-NOV-76 04-DEC-76 P805
GO DMP 1 3 25.6 21-MAR-73 1255 000 GOMAL GO 05-DEC-76 05-JUL-75 P527>
CHECKE DMP 1 3 26.7 11-JUL-72 1958 000 CH2SMG 12-NOV-76 05-JUL-75 P527>
KALAH DMP 1 3 11.2 05-JUL-74 1418 000 1 BH COPY 14-NOV-76 05-JUL-75 P527>
IIIGO DMP 1 3 20.6 21-MAR-73 1256 000 GOMAL IIIGO 06-NOV-76 05-JUL-75 P527>
DCHESS DMP 1 3 9.5 15-JAN-74 2211 000 NETGUE COPY 09-DEC-76 05-JUL-75 P528>
LOA DMP 1 3 4.5 23-MAR-72 0834 000 1GJA 23-AUG-76 05-JUL-75 P528>
.sect Graphics
.ssect1 III Graphics
.ssect2 III Games
SW DMP 1 3 1.7 29-AUG-76 1938 000 SWREG FRAID 28-NOV-76 28-SEP-76 P767>
SWR DMP 1 3 3.2 22-MAY-76 2014 000 1JBR FRAID 09-DEC-76 07-JUN-76 P704>
DF DMP 1 3 3.3 26-JUN-76 1912 000 1PMF DF 06-DEC-76 11-JUL-76 P720>
3DFLY DMP 1 3 11.6 27-APR-75 2042 000 CARHPM COPY 09-DEC-76 05-JUL-75 P527>
BROOM DMP 1 3 928 17-AUG-72 0112 000 1GJA 19-NOV-76 05-JUL-75 P527>
.ssect2 III Displays
FRWK40 DMP 1 3 2.1 04-JUL-76 1130 000 THERHT FRWK40 10-NOV-76 18-JUL-76 P725>
PETAL DMP 1 3 10.0 13-AUG-72 1812 000 SLSDCS 09-DEC-76 05-JUL-75 P527>
DPYCLK DMP 1 3 384 15-JUN-71 0910 000 07-NOV-76 05-JUL-75 P527>
DPYHAX DMP 1 3 4.9 17-MAR-73 1458 000 2TVR DPYHAX 06-DEC-76 05-JUL-75 P527>
CHACK DMP 1 3 768 15-MAR-70 0534 005 06-DEC-76 05-JUL-75 P527>
DIZZY DMP 1 3 46 19-AUG-72 0804 000 MUSTVR 03-DEC-76 05-JUL-75 P527>
ARMDPY DMP 1 3 25.1 08-JUL-76 1328 000 GEMTVR FRAID 06-DEC-76 25-JUL-76 P731>
REPENT DMP 1 3 290 07-AUG-72 0039 000 SWREG 06-DEC-76 05-JUL-75 P527>
AMOEBA DMP 1 3 512 15-MAR-70 0537 000 06-DEC-76 05-JUL-75 P527>
DAZZLE DMP 1 3 10.0 28-FEB-73 0729 000 XGPTVR DAZZLE 03-DEC-76 05-JUL-75 P527>
HYPNO DMP 1 3 768 19-JUL-72 1658 000 SREG 06-DEC-76 05-JUL-75 P527>
FIRWRK DMP 1 3 654 04-JUL-76 1045 000 THERHT FIRWRK 06-DEC-76 18-JUL-76 P725>
ADH DMP 1 3 2.0 16-APR-74 0030 000 ACTREG ADH 06-DEC-76 05-JUL-75 P527>
.ssect1 Data Disc Graphics
LIFE DMP 1 3 9.4 08-MAR-76 0530 000 1PMF LIFE 04-DEC-76 22-MAR-76 P669>
RECKNU DMP 1 3 16.9 13-NOV-76 0154 000 1PMF RECKNU 06-DEC-76 04-DEC-76 P805>
.ssect1 Hard Copy Graphics
HEART DMP 1 3 10.8 09-DEC-73 1608 000 SRHT HEART 23-NOV-76 05-JUL-75 P527>
BILLBD DMP 1 3 10.0 15-MAR-70 0537 005 08-NOV-76 05-JUL-75 P527>
.sect Other Diversions
LITCRY DMP 1 3 1.9 06-DEC-75 1959 000 1RCC LITCRY 29-MAY-76 22-DEC-75 P623>
LESCAL DMP 1 3 4.6 30-DEC-74 0343 000 SLES LESCAL 22-NOV-76 05-JUL-75 P527>
.reference(Information about the world, LESCAL)
PRN DMP 1 3 1.2 30-APR-74 1743 000 SWREG PRN 09-DEC-76 05-JUL-75 P527>
ORACLE DMP 1 3 84 01-NOV-75 0419 044 1MJC COPY 25-NOV-76 17-NOV-75 P605>
LIMRIK DMP 1 3 1.2 19-NOV-74 2244 000 1 BH LIMRIK 08-DEC-76 05-JUL-75 P528>
Chess
CHESS AKC UPDOC 1.0 01-JUL-76 1355 000 1RSS E 02-MAR-78 11-JUL-76 P721>
TECH2 DMP 1 3 75.9 23-JUL-74 0228 000 105SGK TECH2 03-FEB-78 05-JUL-75 P527>
An old version of a chess program written by Alan Baisley (AGB @ MIT-AI)
find no other source of amusment.
Checkers
Go
GO DON UPDOC 512 20-FEB-77 0931 000 1DON E 21-FEB-78 10-OCT-77 P987>
GOGAME DMP 1 3 19.1 13-MAR-77 1748 000 1DON GOGAME 21-FEB-78 29-MAR-77 P871>
SAMPLE GO 1 3 255 13-FEB-77 1023 000 1DON GOGAME 17-FEB-78 26-FEB-77 P857>
KALAH Modern version of WARI, an ancient African game
Brian Harvey probably knows as much about this program as anyone
around although John McCarthy was early involved in the programming
of Kalah at MIT.
See KALAH.AKC[UP,DOC]
To start the program type R KALAH .
Type QUIT to terminate the game
Kalah is a game played by two persons. The board consists of
12 pits (or holes) 6 on each side. In addition there are two larger
oval shaped holes called kalahs. The pits and kalahs may contain
stones - all stones are alike. The starting board position has 6
stones in each pit and the kalahs are empty (while learning the game
it is better to start with a smaller number of stones e.g. 3 in each
pit). A move consists of picking up all the stones in any pit on your
own side and moving counterclockwise dropping one stone in each pit
or kalah as you go along (you never drop a stone into the opponent's
kalah). A stone, once played into a kalah is never moved out. Two
simple rules help to make the game interesting (and nontrivial). 1.
If the last stone falls into your kalah you play again. 2. If the
last stone falls into an empty pit on your own side you capture all
stones in the opponent's pit opposite your pit and place your stone
and the captured stones into your kalah (you don't get to go again
after a capture, and you can't capture if the opponent's pit is
empty).
The objective of the game is to get more stones in your kalah
than the opponent can get in his. The game ends if any one gets more
than half the total number of stones into his kalah or if anyone has
no stones left in any of his pits (even if it is his opponent's turn
to move) in which case his opponent gets to keep all outstanding
stones.
All commands are terminated by a carriage return. In almost
all cases it is sufficient to type the first character of the
command.
Before each game the program asks three questions.
(a) START WITH 1,2,3,3,5 OR 6?
(b) WHAT LEVEL C,B,A, MASTER OR TOURNAMENT?
(c) DO YOU WISH TO START?
The program can play at any of 5 levels. At both C and B
levels it makes its moves almost instantaneously. Level A is the
standard setting (about 3 sec). Master and tournament level settings
take about 6 and 15 sec compute times per move. If you can beat the
tournament level consistently you may apply for a grandmaster ranking
(there is, as yet, no kalah grandmaster).
If the computer's move requires several steps, after each
step the program types
PLEASE TYPE <CR>
asking you to type a carriage return after after examining the move.
The game will be saved on file KALAH.OUT on your area.
KALAH DMP 1 3 11.2 05-JUL-74 1418 000 1 BH COPY 21-FEB-78 05-JUL-75 P527>
KALAH AKC UPDOC 1.3 06-OCT-72 1907 000 UPDOC COPY 08-MAR-78 05-JUL-75 P533>
Recreation Programs
LINS DMP 1 3 384 03-JAN-78 0131 000 105SGK FRAID 23-FEB-78 17-JAN-78 P1046>
This program is the alternative source of system fortunes. It
is invoked by setting the COOKIE option to Login, and says something
cute each time you log in. It may be run by itself if the user can
find no other source of amusment.
ADVENTURE
(EYEWASH)
PARRY A model paranoid Sept. 1977
A natural language "understanding" program that pretends to be a paranoid if
you pretend to be a psychiatrist. To run, say "R HARRY" and answer the
various questions about options any way you like, but type in upper case.
One good set of answers is: "Y", "M", "N", "N", "Y", "N".
Programmer: KMC, BLF, etc.
Source file: unknown (in MLISP)
Documentation: William Faught, "Motivation and Intensionality in a Computer
Simulation Model", Memo AIM-305, Thesis: Ph.D. in Computer Science,
September 1977.
CRYPTO A bookkeeping program for use in solving puzzles.
A program to do the "bookkeeping" involved in solving cryptogram puzzles
(single-letter-substitution ciphers).
Not to be confused with the enciphering/deciphering program CRYPT.
Runs on a DataDisc but can be used on other terminals.
Will create your own file of cryptograms.
Sample cryptograms available.
To use type R CRYPTO, to exit type QUIT or EXIT
Type READ CRYPTO for further details.
There is no PRUNE.DAT listing.
There is no HELP file.
Written by DON.
USEFUL SUBROUTINES
OUTDPY SAIL callable subroutine to display text
title outdpy
entry outdpy
extern outstr,corget,correl
comment ⊗ (taken from OUTDPY.FAI[S,PMF]
This subroutine was written for dd's by pmf. The iii and dm routines, along with
the column-positioning, was added by don on 4-May-78.
Outdpy is a sail-callable procedure for displaying text on datadiscs, iiis,
and datamedias. The declaration within the sail program is:
require "outdpy.rel[s,pmf]" library;
procedure outdpy (string message; integer string_pos, pp_pos);
where: message is the text to be displayed
string_pos is the position where the first char should go (see below)
pp_pos is the position for the page printer (see below)
Lines which are partially occupied by the message will be cleared to right
margin; this will not be the case for blank lines in the text. To get
them truly blank, include at least one space character.
If the terminal is not a display, the sail function "outstr" is invoked
instead.
The value of string_pos should be x,,y (i.e. (x lsh 18)+y) where x is a
column and y is a line. Columns are numbered from 1 to n (n depends on
the display type); a column of zero will put text at the standard left
margin (column 2 on dd's and iii's, column 1 on dm's); a column greater
than the right margin (99 is big enough regardless of the terminal type)
will put text at the column used for "Page xx" by the "copy" program.
Only the first line of text starts at the specified column; subsequent
lines, if any, will start at the standard left margin. Meanwhile, lines
are numbered from 0 (system wholine) through m (again depending on the
terminal). Line 3 is the standard "first line", 2 is the line used by
"copy" for page numbers, etc. Finally, if string_pos is negative, the
screen is erased before the display is done, and the absolute value is
used to determine the x/y coordinates for the text.
The value of pp_pos should be a line number, where 0 again denotes the
system wholine. If pp_pos is negative, the page printer is positioned to
leave |pp_pos| blank lines between the last line of the message and the
first line of the printer. The size of the page printer is set to extend
as near as possible to the bottom of the screen, with the glitch size
being the default for the particular terminal (4 for dd's, 2 for iii's, 3
for dm's) unless this would result in only 1 glitch per screen, in which
case a smaller glitch is used.
⊗;
UNSORTED
BUZZ Terminal test 1967
Programmer: JOE
Say "R BUZZ<cr>" then "<character><cr>" and it will type <character> many times.
Say "<character>=" and it types the octal code for <character>. Either kind
of command can be repeated.
DOCTOR Eliza 1968
Programmer: Joe Weizenbaum (MIT)
Documentation: Numerous idiotic articles
Gives non-directive couselling. Say "R DOCTOR<cr>" and it will say
"SPEAK UP!". Thereafter, pretend that you are lying on a Psychiatrist's
couch and type whatever you like (assuming that you can type while lying
down) followed by TWO carriage returns. Everything must be in UPPER CASE.
Multiple-line statements or questions are OK.
P2P Paper tape puncher 1973?
Programmer: RPH
Documentation: P2P.RPH[UP,DOC]
P2P is a program for reading, punching, and comparing paper tapes. As an
added feature it will take any tape that can be loaded with the 20 loader
and punch a readin mode 20 loader at the beginning of it. This allows you
to use the readin switch on the PDP-10 (the one on the PDP-6 doesn't do
the same thing). Also it will punch a test pattern so that you may see if
the punch is dropping any bits.
A2E ASCII to EBCDIC code conversion Jan. 1973
Programmer: Kevin Kay
Documentation: A2E.KK[S,DOC]
A2E is a program for transferring files from the Stanford AI PDP-10 to an
IBM 360 Series machines. It will transfer files written in ASCII from the
PDP-10 to the System/360 and EBCDIC files from the System/360 to the PDP-10 .
SHUFFL Operating System test program
Programmer: ?
Used to test memory management in the timesharing system. Say
R SHUFFL <core>
and this program will compute indefinitely, alternating its core size
between <core> pages and 2 pages. This is intended to drive the operating
system crazy.
CHACK & AMOEBA III display hacks 1969
Programmer: JAM
Log in on a III display, smoke a little grass, type "R CHACK" or "R AMOEBA"
and be dazzled.
BILLBD Billboard printer Nov. 1966
Programmer: Aram Grayson
Source file: lost (written in Fortran)
Prints BIG on the line printer (one character per page). Upper case only--
no digits or punctuation.
Say "R BILLBD<cr>" then type the message (remember, UPPER CASE) followed by
end-of-file (αβLF).